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.
