[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3bae83d1-bb88-49d3-94a3-3aa56da93bf9@suse.de>
Date: Thu, 20 Nov 2025 09:19:42 +0100
From: Thomas Zimmermann <tzimmermann@...e.de>
To: Ard Biesheuvel <ardb+git@...gle.com>, linux-efi@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, Ard Biesheuvel <ardb@...nel.org>,
Javier Martinez Canillas <javierm@...hat.com>
Subject: Re: [PATCH 0/3] video/efi: Support FIRMWARE_EDID on non-x86
Am 20.11.25 um 08:56 schrieb Thomas Zimmermann:
> Hi,
>
> thanks for addressing the remaining EDID support.
>
> First of all, you need to cc dri-devel@...ts.freedesktop.org on any
> further revisions.
>
> Am 19.11.25 um 13:30 schrieb Ard Biesheuvel:
>> From: Ard Biesheuvel <ardb@...nel.org>
>>
>> Refactor the screen_info handling so non-x86 platforms booting via the
>> EFI stub also have access to the EDID data exposed by the EFI boot
>> services.
>
> I don't like how this series complicates everything to make non-x86
> easier. But the general idea of using efi_screen_info goes into the
> right direction. It's just not generic enough.
>
> The sysfb code transfers struct screen_info as device parameter [1].
> Drivers later fetch it on probe [2]. The direct ref to the global
> edid_info [3] only exists because we have no means of transferring it
> as device data.
>
> So instead of using efi_screen_info, let's declare struct
> sysfb_display with screen_info and edid_info. The header would be
> linux/sysfb.h. We transfer this to all related drivers. The generic
> EFI code would set it up like efi_screen_info and the x86 code would
> decalre it at [4]; replacing the existing state.
If this proposal works for EFI, I could do the changes in graphics
drivers and then resubmit the EDID series with an additional patch for
generic EFI.
>
> Best regards
> Thomas
>
> [1]
> https://elixir.bootlin.com/linux/v6.17.8/source/drivers/firmware/sysfb.c#L205
> [2]
> https://elixir.bootlin.com/linux/v6.17.8/source/drivers/gpu/drm/sysfb/efidrm.c#L162
> [3]
> https://elixir.bootlin.com/linux/v6.17.8/source/drivers/gpu/drm/sysfb/efidrm.c#L206
> [4]
> https://elixir.bootlin.com/linux/v6.17.8/source/arch/x86/kernel/setup.c#L214
>
>
>>
>> Cc: Thomas Zimmermann <tzimmermann@...e.de>
>> Cc: Javier Martinez Canillas <javierm@...hat.com>
>>
>> Ard Biesheuvel (3):
>> efi: Wrap screen_info in efi_screen_info so edid_info can be added
>> later
>> video/edid: Use getter function for edid_info
>> efi: Add FIRMWARE_EDID support
>>
>> arch/x86/kernel/setup.c | 8 ++++++--
>> drivers/firmware/efi/earlycon.c | 1 -
>> drivers/firmware/efi/efi-init.c | 19 ++++++++++++++-----
>> drivers/firmware/efi/libstub/efi-stub-entry.c | 3 +--
>> drivers/firmware/efi/libstub/efi-stub.c | 16 ++++++++++------
>> drivers/firmware/efi/libstub/efistub.h | 9 +++------
>> drivers/firmware/efi/libstub/gop.c | 1 -
>> drivers/firmware/efi/libstub/screen_info.c | 7 +++----
>> drivers/firmware/efi/libstub/zboot.c | 2 +-
>> drivers/firmware/efi/sysfb_efi.c | 1 -
>> drivers/gpu/drm/sysfb/efidrm.c | 4 ++--
>> drivers/gpu/drm/sysfb/vesadrm.c | 4 ++--
>> drivers/video/Kconfig | 2 +-
>> drivers/video/fbdev/core/fbmon.c | 4 ++--
>> include/linux/efi.h | 10 +++++++++-
>> include/video/edid.h | 2 +-
>> 16 files changed, 55 insertions(+), 38 deletions(-)
>>
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)
Powered by blists - more mailing lists