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

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

From: Michal Suchánek <hidden>
Date: 2022-02-18 10:08:53
Also in: dri-devel, lkml

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:
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?
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
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help