OSDN Git Service

sysfb: Enable boot time VESA graphic mode selection
authorMichal Suchanek <msuchanek@suse.de>
Fri, 25 Feb 2022 20:51:34 +0000 (21:51 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Fri, 4 Mar 2022 19:55:33 +0000 (20:55 +0100)
Since switch to simplefb/simpledrm VESA graphic mode selection with vga=
kernel parameter is no longer available with legacy BIOS.

The x86 realmode boot code enables the VESA graphic modes when option
FB_BOOT_VESA_SUPPORT is enabled.

This option is selected by vesafb but not simplefb/simpledrm.

To enable use of VESA modes with simplefb in legacy BIOS boot mode drop
dependency of BOOT_VESA_SUPPORT on FB, also drop the FB_ prefix. Select
the option from sysfb rather than the drivers that depend on it.

The BOOT_VESA_SUPPORT is not specific to framebuffer but rather to x86
platform, move it from fbdev to x86 Kconfig.

Fixes: e3263ab389a7 ("x86: provide platform-devices for boot-framebuffers")
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/948c39940a4e99f5b43bdbcbe537faae71a43e1d.1645822213.git.msuchanek@suse.de
arch/x86/Kconfig
arch/x86/boot/video-vesa.c
drivers/firmware/Kconfig
drivers/video/fbdev/Kconfig

index 9f5bd41..cceb1aa 100644 (file)
@@ -942,6 +942,12 @@ config GART_IOMMU
 
          If unsure, say Y.
 
+config BOOT_VESA_SUPPORT
+       bool
+       help
+         If true, at least one selected framebuffer driver can take advantage
+         of VESA video modes set at an early boot stage via the vga= parameter.
+
 config MAXSMP
        bool "Enable Maximum number of SMP Processors and NUMA Nodes"
        depends on X86_64 && SMP && DEBUG_KERNEL
index 7e18597..c2c6d35 100644 (file)
@@ -83,7 +83,7 @@ static int vesa_probe(void)
                           (vminfo.memory_layout == 4 ||
                            vminfo.memory_layout == 6) &&
                           vminfo.memory_planes == 1) {
-#ifdef CONFIG_FB_BOOT_VESA_SUPPORT
+#ifdef CONFIG_BOOT_VESA_SUPPORT
                        /* Graphics mode, color, linear frame buffer
                           supported.  Only register the mode if
                           if framebuffer is configured, however,
@@ -121,7 +121,7 @@ static int vesa_set_mode(struct mode_info *mode)
        if ((vminfo.mode_attr & 0x15) == 0x05) {
                /* It's a supported text mode */
                is_graphic = 0;
-#ifdef CONFIG_FB_BOOT_VESA_SUPPORT
+#ifdef CONFIG_BOOT_VESA_SUPPORT
        } else if ((vminfo.mode_attr & 0x99) == 0x99) {
                /* It's a graphics mode with linear frame buffer */
                is_graphic = 1;
index 5265eca..be42ae6 100644 (file)
@@ -218,6 +218,7 @@ config QCOM_SCM_DOWNLOAD_MODE_DEFAULT
 
 config SYSFB
        bool
+       select BOOT_VESA_SUPPORT
 
 config SYSFB_SIMPLEFB
        bool "Mark VGA/VBE/EFI FB as generic system framebuffer"
index 5851ee6..01cf070 100644 (file)
@@ -66,13 +66,6 @@ config FB_DDC
        select I2C_ALGOBIT
        select I2C
 
-config FB_BOOT_VESA_SUPPORT
-       bool
-       depends on FB
-       help
-         If true, at least one selected framebuffer driver can take advantage
-         of VESA video modes set at an early boot stage via the vga= parameter.
-
 config FB_CFB_FILLRECT
        tristate
        depends on FB
@@ -627,7 +620,6 @@ config FB_VESA
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
-       select FB_BOOT_VESA_SUPPORT
        select SYSFB
        help
          This is the frame buffer device driver for generic VESA 2.0
@@ -1053,7 +1045,7 @@ config FB_INTEL
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
-       select FB_BOOT_VESA_SUPPORT if FB_INTEL = y
+       select BOOT_VESA_SUPPORT if FB_INTEL = y
        depends on !DRM_I915
        help
          This driver supports the on-board graphics built in to the Intel
@@ -1380,7 +1372,7 @@ config FB_SIS
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
-       select FB_BOOT_VESA_SUPPORT if FB_SIS = y
+       select BOOT_VESA_SUPPORT if FB_SIS = y
        select FB_SIS_300 if !FB_SIS_315
        help
          This is the frame buffer device driver for the SiS 300, 315, 330