[PATCH v2] simplefb: Enable boot time VESA graphic mode selection.

Thomas Zimmermann tzimmermann at suse.de
Fri Feb 18 11:36:10 UTC 2022


Hi

Am 18.02.22 um 11:51 schrieb Michal Suchanek:
> Since switch to simplefb/simpledrm VESA graphic modes are no longer
> available with legacy BIOS.
> 
> The x86 realmode boot code enables the VESA graphic modes when option
> FB_BOOT_VESA_SUPPORT is enabled.
> 
> To enable use of VESA modes with simpledrm in legacy BIOS boot mode drop
> dependency of BOOT_VESA_SUPPORT on FB, also drop the FB_ prefix, and
> select the option when simpledrm is built-in on x86.
> 
> Fixes: e3263ab389a7 ("x86: provide platform-devices for boot-framebuffers")
> Signed-off-by: Michal Suchanek <msuchanek at suse.de>
> ---
> v2: Select BOOT_VESA_SUPPORT from simplefb rather than simpledrm. The
> simpledrm driver uses the firmware provided video modes only indirectly
> through simplefb, and both can be enabled independently.
> ---
>   arch/x86/boot/video-vesa.c  | 4 ++--
>   drivers/firmware/Kconfig    | 1 +
>   drivers/video/fbdev/Kconfig | 9 ++++-----
>   3 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c
> index 7e185977a984..c2c6d35e3a43 100644
> --- a/arch/x86/boot/video-vesa.c
> +++ b/arch/x86/boot/video-vesa.c
> @@ -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;
> diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
> index 75cb91055c17..8053c75b8645 100644
> --- a/drivers/firmware/Kconfig
> +++ b/drivers/firmware/Kconfig
> @@ -224,6 +224,7 @@ config SYSFB
>   config SYSFB_SIMPLEFB
>   	bool "Mark VGA/VBE/EFI FB as generic system framebuffer"
>   	depends on SYSFB
> +	select BOOT_VESA_SUPPORT if X86
>   	help
>   	  Firmwares often provide initial graphics framebuffers so the BIOS,
>   	  bootloader or kernel can show basic video-output during boot for
> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
> index 6ed5e608dd04..4f3be9b7a520 100644
> --- a/drivers/video/fbdev/Kconfig
> +++ b/drivers/video/fbdev/Kconfig
> @@ -66,9 +66,8 @@ config FB_DDC
>   	select I2C_ALGOBIT
>   	select I2C
>   
> -config FB_BOOT_VESA_SUPPORT
> +config 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.

This isn't an fb option any longer. Should we move this into 
arch/x86/Kconfig ?

Best regards
Thomas

> @@ -627,7 +626,7 @@ config FB_VESA
>   	select FB_CFB_FILLRECT
>   	select FB_CFB_COPYAREA
>   	select FB_CFB_IMAGEBLIT
> -	select FB_BOOT_VESA_SUPPORT
> +	select BOOT_VESA_SUPPORT
>   	help
>   	  This is the frame buffer device driver for generic VESA 2.0
>   	  compliant graphic cards. The older VESA 1.2 cards are not supported.
> @@ -1051,7 +1050,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
> @@ -1378,7 +1377,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

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20220218/ec4832c4/attachment.sig>


More information about the dri-devel mailing list