Thread (31 messages) 31 messages, 4 authors, 2022-03-07

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

From: Thomas Zimmermann <tzimmermann@suse.de>
Date: 2022-02-18 10:24:47
Also in: dri-devel, lkml

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:
quoted
Hi Michal

Am 18.02.22 um 10:33 schrieb Michal Suchanek:
quoted
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.
quoted
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
quoted
quoted
Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
Signed-off-by: Michal Suchanek <redacted>
---
   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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help