On Wed, 3 Dec 2025 at 11:34, Tvrtko Ursulin <[email protected]> wrote: > > > On 03/12/2025 10:29, Thomas Zimmermann wrote: > > Hi > > > > Am 03.12.25 um 11:13 schrieb Ard Biesheuvel: > >> On Wed, 3 Dec 2025 at 11:05, Thomas Zimmermann <[email protected]> > >> wrote: > >>> Hi > >>> > >>> Am 03.12.25 um 10:07 schrieb Tvrtko Ursulin: > >>>> Valve Steam Deck has a 800x1280 portrait screen installed in a > >>>> landscape > >>>> orientation. The firmware offers a software rotated 1280x800 mode which > >>>> GRUB can be made to switch to when displaying a boot menu. If this mode > >>>> was selected frame buffer drivers will see this fake mode and fbcon > >>>> rendering will be corrupted. > >>>> > >>>> Lets therefore add a selective quirk inside the current "swap with and > >>>> height" handling, which will detect this exact mode and fix it up > >>>> back to > >>>> the native one. > >>>> > >>>> This will allow the DRM based frame buffer drivers to detect the > >>>> correct > >>>> mode and, apply the existing panel orientation quirk, and render the > >>>> console in landscape mode with no corruption. > >>>> > >>>> Signed-off-by: Tvrtko Ursulin <[email protected]> > >>>> Cc: Thomas Zimmermann <[email protected]> > >>>> Cc: Ard Biesheuvel <[email protected]> > >>>> Cc: Melissa Wen <[email protected]> > >>>> Cc: [email protected] > >>>> --- > >>>> drivers/firmware/efi/sysfb_efi.c | 56 +++++++++++++++++++++++++++ > >>>> ++--- > >>>> 1 file changed, 51 insertions(+), 5 deletions(-) > >>>> > >>>> diff --git a/drivers/firmware/efi/sysfb_efi.c b/drivers/firmware/ > >>>> efi/sysfb_efi.c > >>>> index eacf9a50eab2..566492e67798 100644 > >>>> --- a/drivers/firmware/efi/sysfb_efi.c > >>>> +++ b/drivers/firmware/efi/sysfb_efi.c > >>>> @@ -231,16 +231,42 @@ static const struct dmi_system_id > >>>> efifb_dmi_system_table[] __initconst = { > >>>> {}, > >>>> }; > >>>> > >>>> +struct efifb_mode_fixup { > >>>> + unsigned int width; > >>>> + unsigned int height; > >>>> + unsigned int linelength; > >>>> +}; > >>>> + > >>>> static int __init efifb_swap_width_height(const struct > >>>> dmi_system_id *id) > >>> It's something different now. Can this please become a separate list > >>> with a separate callback? > >>> > >> Why? That means we have to introduce another dmi_check_system() call, > >> and manually implement the logic to ensure that it is not called > >> redundantly, i.e., after the first one already found a match. > > > > If the separate list isn't feasible, let's at least have a separate > > callback. > > Ard asked for that already so in v3 it is already separate. > > I have also locally changed 2/4 to use > __screen_info_lfb_bits_per_pixel() and if now everyone is happy I can > send out a v4 with that? >
Give it a day or so, it's not going to be merged before -rc1 anyway
