All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] x86/video: Preserve the default VGA fallback for legacy modes
@ 2026-11-03  3:16 Hengyu Liang
  2026-11-03  3:20 ` sashiko-bot
  0 siblings, 1 reply; 2+ messages in thread
From: Hengyu Liang @ 2026-11-03  3:16 UTC (permalink / raw)
  To: x86
  Cc: bp, mario.limonciello, superm1, tzimmermann, aaron.ma,
	linux-kernel, linux-pci, dri-devel

Commit 596b3678326d ("x86/video: Only fall back to vga_default_device()
without screen info") made video_is_primary_device() rely exclusively
on screen_info resources whenever any are available.

However, screen_info_resources() also returns legacy I/O and memory
ranges for VGA text modes. These ranges are not PCI BARs, so
pci_find_resource() does not find them and the default VGA fallback is
skipped. As a result, no device is primary in VGA text mode.

On a SeaBIOS QEMU guest with bochs and VKMS, the boot VGA (bochs) loses
its DRM boot_display attribute. VKMS registers fb0 and bochs registers
fb1. VKMS is not a PCI device, so it is not primary either. With no
primary device, fbcon keeps the console on fb0 and never remaps it to
bochs. This can be checked with:

    cat /sys/class/drm/card1/boot_display
    stty -F /dev/tty1 size

Without the fix, boot_display is missing and tty1 is 48 rows by 128
columns. With it, boot_display contains 1 and tty1 is 50 rows by 160
columns. VKMS only makes the console part visible. Without VKMS, tty1
has the same size with and without the fix, but boot_display is still
missing without it.

Use resource-based selection only for linear framebuffers. Fall back to
vga_default_device() for legacy display modes, while keeping EFI and
VESA framebuffer ownership authoritative.

Fixes: 596b3678326d ("x86/video: Only fall back to vga_default_device() without screen info")
Cc: stable@vger.kernel.org
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Hengyu Liang <hengyul@cs.unc.edu>
---
Changes in v2:
- Explain in the commit message why no device is primary in text mode
  and what VKMS shows (Boris, Thomas).
- Add the Reviewed-by tags. No code change.
- v1: https://lore.kernel.org/all/20261029162311.3389523-1-hengyul@cs.unc.edu/

 arch/x86/video/video-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/video/video-common.c b/arch/x86/video/video-common.c
index 8ed82fff7638..b8f83346dfe8 100644
--- a/arch/x86/video/video-common.c
+++ b/arch/x86/video/video-common.c
@@ -45,7 +45,7 @@ bool video_is_primary_device(struct device *dev)
 
 #ifdef CONFIG_SCREEN_INFO
 	numres = screen_info_resources(si, res, ARRAY_SIZE(res));
-	if (numres > 0) {
+	if (numres > 0 && __screen_info_has_lfb(screen_info_video_type(si))) {
 		for (i = 0; i < numres; ++i) {
 			if (!(res[i].flags & IORESOURCE_MEM))
 				continue;

base-commit: c339f4010dea8b0d754f84ace70cd1b089878ef8
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] x86/video: Preserve the default VGA fallback for legacy modes
  2026-11-03  3:16 [PATCH v2] x86/video: Preserve the default VGA fallback for legacy modes Hengyu Liang
@ 2026-11-03  3:20 ` sashiko-bot
  0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-11-03  3:20 UTC (permalink / raw)
  To: Hengyu Liang; +Cc: linux-pci

> Commit 596b3678326d ("x86/video: Only fall back to vga_default_device()
> without screen info") made video_is_primary_device() rely exclusively
> on screen_info resources whenever any are available.
> 
> However, screen_info_resources() also returns legacy I/O and memory
> ranges for VGA text modes. These ranges are not PCI BARs, so
> pci_find_resource() does not find them and the default VGA fallback is
> skipped. As a result, no device is primary in VGA text mode.
> 
> On a SeaBIOS QEMU guest with bochs and VKMS, the boot VGA (bochs) loses
> its DRM boot_display attribute. VKMS registers fb0 and bochs registers
> fb1. VKMS is not a PCI device, so it is not primary either. With no
> primary device, fbcon keeps the console on fb0 and never remaps it to
> bochs. This can be checked with:
> 
> [ ... ]
> Fixes: 596b3678326d ("x86/video: Only fall back to vga_default_device() without screen info")
> Cc: stable@vger.kernel.org
> Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
> Signed-off-by: Hengyu Liang <hengyul@cs.unc.edu>

Sashiko has reviewed this patch and found no issues.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261103031630.2085194-1-hengyul@cs.unc.edu?part=1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-11-03  3:20 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-03  3:16 [PATCH v2] x86/video: Preserve the default VGA fallback for legacy modes Hengyu Liang
2026-11-03  3:20 ` sashiko-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.