diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-02-09 20:49:19 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-02-09 20:49:19 -0800 |
| commit | 0c61526621ec1916527d6f6226d8a466340cca22 (patch) | |
| tree | 22ee5ea165acd724cca10cac89659a5f8e2666fe /drivers/gpu/drm/sysfb | |
| parent | 33120a2f8fc47f388506b7df1209bd5ac85dd584 (diff) | |
| parent | c5a8f13f1e476c90f4bc184a58751d3e7ff88f2b (diff) | |
| download | linux-0c61526621ec1916527d6f6226d8a466340cca22.tar.gz linux-0c61526621ec1916527d6f6226d8a466340cca22.tar.bz2 linux-0c61526621ec1916527d6f6226d8a466340cca22.zip | |
Merge tag 'efi-next-for-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi
Pull EFI updates from Ard Biesheuvel:
- Quirk the broken EFI framebuffer geometry on the Valve Steam Deck
- Capture the EDID information of the primary display also on non-x86
EFI systems when booting via the EFI stub.
* tag 'efi-next-for-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
efi: Support EDID information
sysfb: Move edid_info into sysfb_primary_display
sysfb: Pass sysfb_primary_display to devices
sysfb: Replace screen_info with sysfb_primary_display
sysfb: Add struct sysfb_display_info
efi: sysfb_efi: Reduce number of references to global screen_info
efi: earlycon: Reduce number of references to global screen_info
efi: sysfb_efi: Fix efidrmfb and simpledrmfb on Valve Steam Deck
efi: sysfb_efi: Convert swap width and height quirk to a callback
efi: sysfb_efi: Fix lfb_linelength calculation when applying quirks
efi: sysfb_efi: Replace open coded swap with the macro
Diffstat (limited to 'drivers/gpu/drm/sysfb')
| -rw-r--r-- | drivers/gpu/drm/sysfb/efidrm.c | 14 | ||||
| -rw-r--r-- | drivers/gpu/drm/sysfb/vesadrm.c | 14 |
2 files changed, 16 insertions, 12 deletions
diff --git a/drivers/gpu/drm/sysfb/efidrm.c b/drivers/gpu/drm/sysfb/efidrm.c index 1b683d55d6ea..50e0aeef709c 100644 --- a/drivers/gpu/drm/sysfb/efidrm.c +++ b/drivers/gpu/drm/sysfb/efidrm.c @@ -4,7 +4,7 @@ #include <linux/efi.h> #include <linux/limits.h> #include <linux/platform_device.h> -#include <linux/screen_info.h> +#include <linux/sysfb.h> #include <drm/clients/drm_client_setup.h> #include <drm/drm_atomic.h> @@ -24,7 +24,6 @@ #include <drm/drm_print.h> #include <drm/drm_probe_helper.h> -#include <video/edid.h> #include <video/pixel_format.h> #include "drm_sysfb_helper.h" @@ -141,6 +140,7 @@ static const struct drm_mode_config_funcs efidrm_mode_config_funcs = { static struct efidrm_device *efidrm_device_create(struct drm_driver *drv, struct platform_device *pdev) { + const struct sysfb_display_info *dpy; const struct screen_info *si; const struct drm_format_info *format; int width, height, stride; @@ -160,9 +160,11 @@ static struct efidrm_device *efidrm_device_create(struct drm_driver *drv, size_t nformats; int ret; - si = dev_get_platdata(&pdev->dev); - if (!si) + dpy = dev_get_platdata(&pdev->dev); + if (!dpy) return ERR_PTR(-ENODEV); + si = &dpy->screen; + if (screen_info_video_type(si) != VIDEO_TYPE_EFI) return ERR_PTR(-ENODEV); @@ -204,8 +206,8 @@ static struct efidrm_device *efidrm_device_create(struct drm_driver *drv, &format->format, width, height, stride); #if defined(CONFIG_FIRMWARE_EDID) - if (drm_edid_header_is_valid(edid_info.dummy) == 8) - sysfb->edid = edid_info.dummy; + if (drm_edid_header_is_valid(dpy->edid.dummy) == 8) + sysfb->edid = dpy->edid.dummy; #endif sysfb->fb_mode = drm_sysfb_mode(width, height, 0, 0); sysfb->fb_format = format; diff --git a/drivers/gpu/drm/sysfb/vesadrm.c b/drivers/gpu/drm/sysfb/vesadrm.c index 7b7b5ba26317..0680638b8131 100644 --- a/drivers/gpu/drm/sysfb/vesadrm.c +++ b/drivers/gpu/drm/sysfb/vesadrm.c @@ -4,7 +4,7 @@ #include <linux/ioport.h> #include <linux/limits.h> #include <linux/platform_device.h> -#include <linux/screen_info.h> +#include <linux/sysfb.h> #include <drm/clients/drm_client_setup.h> #include <drm/drm_atomic.h> @@ -25,7 +25,6 @@ #include <drm/drm_print.h> #include <drm/drm_probe_helper.h> -#include <video/edid.h> #include <video/pixel_format.h> #include <video/vga.h> @@ -391,6 +390,7 @@ static const struct drm_mode_config_funcs vesadrm_mode_config_funcs = { static struct vesadrm_device *vesadrm_device_create(struct drm_driver *drv, struct platform_device *pdev) { + const struct sysfb_display_info *dpy; const struct screen_info *si; const struct drm_format_info *format; int width, height, stride; @@ -410,9 +410,11 @@ static struct vesadrm_device *vesadrm_device_create(struct drm_driver *drv, size_t nformats; int ret; - si = dev_get_platdata(&pdev->dev); - if (!si) + dpy = dev_get_platdata(&pdev->dev); + if (!dpy) return ERR_PTR(-ENODEV); + si = &dpy->screen; + if (screen_info_video_type(si) != VIDEO_TYPE_VLFB) return ERR_PTR(-ENODEV); @@ -471,8 +473,8 @@ static struct vesadrm_device *vesadrm_device_create(struct drm_driver *drv, } #if defined(CONFIG_FIRMWARE_EDID) - if (drm_edid_header_is_valid(edid_info.dummy) == 8) - sysfb->edid = edid_info.dummy; + if (drm_edid_header_is_valid(dpy->edid.dummy) == 8) + sysfb->edid = dpy->edid.dummy; #endif sysfb->fb_mode = drm_sysfb_mode(width, height, 0, 0); sysfb->fb_format = format; |
