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

Michal Suchánek msuchanek at suse.de
Fri Feb 18 12:05:30 UTC 2022


On Fri, Feb 18, 2022 at 12:36:10PM +0100, Thomas Zimmermann wrote:
> 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 ?

I tried moving it just a directory up but then found that it works even
where it is. It's specific to x86 boot code so moving to x86 may make
sense. Then the 'if X86' should not be needed, either.

Thanks

Michal

> 
> 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





More information about the dri-devel mailing list