• Hans de Goede's avatar
    efi: sysfb_efi: Fix DMI quirks not working for simpledrm · 3615c786
    Hans de Goede authored
    Commit 8633ef82 ("drivers/firmware: consolidate EFI framebuffer setup
    for all arches") moved the sysfb_apply_efi_quirks() call in sysfb_init()
    from before the [sysfb_]parse_mode() call to after it.
    But sysfb_apply_efi_quirks() modifies the global screen_info struct which
    [sysfb_]parse_mode() parses, so doing it later is too late.
    
    This has broken all DMI based quirks for correcting wrong firmware efifb
    settings when simpledrm is used.
    
    To fix this move the sysfb_apply_efi_quirks() call back to its old place
    and split the new setup of the efifb_fwnode (which requires
    the platform_device) into its own function and call that at
    the place of the moved sysfb_apply_efi_quirks(pd) calls.
    
    Fixes: 8633ef82 ("drivers/firmware: consolidate EFI framebuffer setup for all arches")
    Cc: stable@vger.kernel.org
    Cc: Javier Martinez Canillas <javierm@redhat.com>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    3615c786
sysfb.c 3.54 KB