2022-02-18 10:05:17

by Michal Suchánek

[permalink] [raw]
Subject: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Since switch to 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: 11e8f5fd223b ("drm: Add simpledrm driver")
Signed-off-by: Michal Suchanek <[email protected]>
---
arch/x86/boot/video-vesa.c | 4 ++--
drivers/gpu/drm/tiny/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/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
index 712e0004e96e..1bc30c64ed15 100644
--- a/drivers/gpu/drm/tiny/Kconfig
+++ b/drivers/gpu/drm/tiny/Kconfig
@@ -54,6 +54,7 @@ config DRM_GM12U320
config DRM_SIMPLEDRM
tristate "Simple framebuffer driver"
depends on DRM && MMU
+ select BOOT_VESA_SUPPORT if X86 && DRM_SIMPLEDRM = y
select DRM_GEM_SHMEM_HELPER
select DRM_KMS_HELPER
help
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.
@@ -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
--
2.31.1


2022-02-18 10:49:43

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hi Michal

Am 18.02.22 um 10:33 schrieb Michal Suchanek:
> Since switch to 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.

Thanks for sending the patch.

I tested simpledrm on a VESA-based systems and it work. Do you have a
concrete example of a mode that doesn't work any longer?

>
> Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
> Signed-off-by: Michal Suchanek <[email protected]>
> ---
> arch/x86/boot/video-vesa.c | 4 ++--
> drivers/gpu/drm/tiny/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/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
> index 712e0004e96e..1bc30c64ed15 100644
> --- a/drivers/gpu/drm/tiny/Kconfig
> +++ b/drivers/gpu/drm/tiny/Kconfig
> @@ -54,6 +54,7 @@ config DRM_GM12U320
> config DRM_SIMPLEDRM
> tristate "Simple framebuffer driver"
> depends on DRM && MMU
> + select BOOT_VESA_SUPPORT if X86 && DRM_SIMPLEDRM = y

We shouldn't select this option in drivers IMHO. Simple-framebuffer
devices with VESA are enabled with [1] and that should also select the
BOOT_VESA_SUPPORT.

Best regards
Thomas

[1]
https://elixir.bootlin.com/linux/v5.16.10/source/drivers/firmware/Kconfig#L224

> select DRM_GEM_SHMEM_HELPER
> select DRM_KMS_HELPER
> help
> 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.
> @@ -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


Attachments:
OpenPGP_signature (855.00 B)
OpenPGP digital signature

2022-02-18 11:01:16

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hello,

On Fri, Feb 18, 2022 at 10:57:33AM +0100, Thomas Zimmermann wrote:
> Hi Michal
>
> Am 18.02.22 um 10:33 schrieb Michal Suchanek:
> > Since switch to 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.
>
> Thanks for sending the patch.
>
> I tested simpledrm on a VESA-based systems and it work. Do you have a

In EFI or legacy mode?

> concrete example of a mode that doesn't work any longer?

As per discussion in
https://bugzilla.opensuse.org/show_bug.cgi?id=1193250 vga=791 does not.

Also it is clear examinig the realmode code that this option is needed
to enable graphic mode selection.

I don't have a system with legacy BIOS at hand but from user testing
this improves the situation - kernel does not reeject the videomode
argument, and simpledrm is initialized during boot.

Thanks

Michal

>
> >
> > Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
> > Signed-off-by: Michal Suchanek <[email protected]>
> > ---
> > arch/x86/boot/video-vesa.c | 4 ++--
> > drivers/gpu/drm/tiny/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/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
> > index 712e0004e96e..1bc30c64ed15 100644
> > --- a/drivers/gpu/drm/tiny/Kconfig
> > +++ b/drivers/gpu/drm/tiny/Kconfig
> > @@ -54,6 +54,7 @@ config DRM_GM12U320
> > config DRM_SIMPLEDRM
> > tristate "Simple framebuffer driver"
> > depends on DRM && MMU
> > + select BOOT_VESA_SUPPORT if X86 && DRM_SIMPLEDRM = y
>
> We shouldn't select this option in drivers IMHO. Simple-framebuffer devices
> with VESA are enabled with [1] and that should also select the
> BOOT_VESA_SUPPORT.

Sounds ok to select from there, it should also cover simplefb then.

Thanks

Michal

2022-02-18 11:41:07

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hi

Am 18.02.22 um 11:08 schrieb Michal Suchánek:
> Hello,
>
> On Fri, Feb 18, 2022 at 10:57:33AM +0100, Thomas Zimmermann wrote:
>> Hi Michal
>>
>> Am 18.02.22 um 10:33 schrieb Michal Suchanek:
>>> Since switch to 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.
>>
>> Thanks for sending the patch.
>>
>> I tested simpledrm on a VESA-based systems and it work. Do you have a
>
> In EFI or legacy mode?

It was a 32-bit AthlonXP. So as legacy as it gets.

>
>> concrete example of a mode that doesn't work any longer?
>
> As per discussion in
> https://bugzilla.opensuse.org/show_bug.cgi?id=1193250 vga=791 does not.

I wonder if this fixes a few more of the complains we've seen about
missing resolutions.

>
> Also it is clear examinig the realmode code that this option is needed
> to enable graphic mode selection.
>
> I don't have a system with legacy BIOS at hand but from user testing
> this improves the situation - kernel does not reeject the videomode
> argument, and simpledrm is initialized during boot.

No doubt about that.

Best regards
Thomas

>
> Thanks
>
> Michal
>
>>
>>>
>>> Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
>>> Signed-off-by: Michal Suchanek <[email protected]>
>>> ---
>>> arch/x86/boot/video-vesa.c | 4 ++--
>>> drivers/gpu/drm/tiny/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/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
>>> index 712e0004e96e..1bc30c64ed15 100644
>>> --- a/drivers/gpu/drm/tiny/Kconfig
>>> +++ b/drivers/gpu/drm/tiny/Kconfig
>>> @@ -54,6 +54,7 @@ config DRM_GM12U320
>>> config DRM_SIMPLEDRM
>>> tristate "Simple framebuffer driver"
>>> depends on DRM && MMU
>>> + select BOOT_VESA_SUPPORT if X86 && DRM_SIMPLEDRM = y
>>
>> We shouldn't select this option in drivers IMHO. Simple-framebuffer devices
>> with VESA are enabled with [1] and that should also select the
>> BOOT_VESA_SUPPORT.
>
> Sounds ok to select from there, it should also cover simplefb then.
>
> Thanks
>
> Michal

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


Attachments:
OpenPGP_signature (855.00 B)
OpenPGP digital signature

2022-02-18 14:49:53

by Michal Suchánek

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

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 <[email protected]>
---
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.
@@ -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
--
2.31.1

2022-03-02 22:00:43

by Javier Martinez Canillas

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hello,

On 3/2/22 20:38, Michal Suchánek wrote:
> Hello,
>
> On Wed, Mar 02, 2022 at 08:31:25PM +0100, Thomas Zimmermann wrote:
>> Hi,
>>
>> is this ready to be merged?
>
> The objections raised so far have been addressed in v4.
>
> I think this is good to merge.
>

The v4 patches looks good to me and have provided my Reviewed-by to all of them.

> Thanks
>
> Michal
>
>>
--
Best regards,

Javier Martinez Canillas
Linux Engineering
Red Hat

2022-03-02 22:42:05

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hi,

is this ready to be merged?

Best regards
Thomas

Am 18.02.22 um 10:33 schrieb Michal Suchanek:
> Since switch to 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: 11e8f5fd223b ("drm: Add simpledrm driver")
> Signed-off-by: Michal Suchanek <[email protected]>
> ---
> arch/x86/boot/video-vesa.c | 4 ++--
> drivers/gpu/drm/tiny/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/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
> index 712e0004e96e..1bc30c64ed15 100644
> --- a/drivers/gpu/drm/tiny/Kconfig
> +++ b/drivers/gpu/drm/tiny/Kconfig
> @@ -54,6 +54,7 @@ config DRM_GM12U320
> config DRM_SIMPLEDRM
> tristate "Simple framebuffer driver"
> depends on DRM && MMU
> + select BOOT_VESA_SUPPORT if X86 && DRM_SIMPLEDRM = y
> select DRM_GEM_SHMEM_HELPER
> select DRM_KMS_HELPER
> help
> 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.
> @@ -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


Attachments:
OpenPGP_signature (855.00 B)
OpenPGP digital signature

2022-03-02 23:38:43

by Michal Suchánek

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hello,

On Wed, Mar 02, 2022 at 08:31:25PM +0100, Thomas Zimmermann wrote:
> Hi,
>
> is this ready to be merged?

The objections raised so far have been addressed in v4.

I think this is good to merge.

Thanks

Michal

>
> Best regards
> Thomas
>
> Am 18.02.22 um 10:33 schrieb Michal Suchanek:
> > Since switch to 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: 11e8f5fd223b ("drm: Add simpledrm driver")
> > Signed-off-by: Michal Suchanek <[email protected]>
> > ---
> > arch/x86/boot/video-vesa.c | 4 ++--
> > drivers/gpu/drm/tiny/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/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
> > index 712e0004e96e..1bc30c64ed15 100644
> > --- a/drivers/gpu/drm/tiny/Kconfig
> > +++ b/drivers/gpu/drm/tiny/Kconfig
> > @@ -54,6 +54,7 @@ config DRM_GM12U320
> > config DRM_SIMPLEDRM
> > tristate "Simple framebuffer driver"
> > depends on DRM && MMU
> > + select BOOT_VESA_SUPPORT if X86 && DRM_SIMPLEDRM = y
> > select DRM_GEM_SHMEM_HELPER
> > select DRM_KMS_HELPER
> > help
> > 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.
> > @@ -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



2022-03-04 20:48:59

by Javier Martinez Canillas

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hello Thomas,

On 3/4/22 21:00, Thomas Zimmermann wrote:
> Hi,
>
> I've merged the patches into drm-misc-fixes. Thanks a lot to both of you.
>

Ard already picked these through the efi tree:

https://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git/log/

> Best regards
> Thomas
>
--
Best regards,

Javier Martinez Canillas
Linux Engineering
Red Hat

2022-03-04 21:13:49

by Thomas Zimmermann

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

Hi,

I've merged the patches into drm-misc-fixes. Thanks a lot to both of you.

Best regards
Thomas

Am 02.03.22 um 20:47 schrieb Javier Martinez Canillas:
> Hello,
>
> On 3/2/22 20:38, Michal Suchánek wrote:
>> Hello,
>>
>> On Wed, Mar 02, 2022 at 08:31:25PM +0100, Thomas Zimmermann wrote:
>>> Hi,
>>>
>>> is this ready to be merged?
>>
>> The objections raised so far have been addressed in v4.
>>
>> I think this is good to merge.
>>
>
> The v4 patches looks good to me and have provided my Reviewed-by to all of them.
>
>> Thanks
>>
>> Michal
>>
>>>

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


Attachments:
OpenPGP_signature (855.00 B)
OpenPGP digital signature

2022-03-07 15:04:03

by Javier Martinez Canillas

[permalink] [raw]
Subject: Re: [PATCH] simpldrm: Enable boot time VESA graphic mode selection.

On 3/4/22 21:47, Javier Martinez Canillas wrote:
> Hello Thomas,
>
> On 3/4/22 21:00, Thomas Zimmermann wrote:
>> Hi,
>>
>> I've merged the patches into drm-misc-fixes. Thanks a lot to both of you.
>>
>
> Ard already picked these through the efi tree:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git/log/
>

I talked with Ard and he kindly dropped these patches from the efi
tree. So everything is fine.

>> Best regards
>> Thomas
>>

--
Best regards,

Javier Martinez Canillas
Linux Engineering
Red Hat