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

Reply via email to