[L] [PATCH 8/9] fbdev: Simplify fb_is_primary_device for x86

Kai-Heng Feng kai.heng.feng at canonical.com
Wed Jul 26 08:19:46 UTC 2023

From: Daniel Vetter <daniel.vetter at ffwll.ch>

BugLink: https://bugs.launchpad.net/bugs/2028749

vga_default_device really is supposed to cover all corners, at least
for x86. Additionally checking for rom shadowing should be redundant,
because the bios/fw only does that for the boot vga device.

If this turns out to be wrong, then most likely that's a special case
which should be added to the vgaarb code, not replicated all over.

Patch motived by changes to the aperture helpers, which also have this
open code in a bunch of places, and which are all removed in a
clean-up series. This function here is just for selecting the default
fbdev device for fbcon, but I figured for consistency it might be good
to throw this patch in on top.

Note that the shadow rom check predates vgaarb, which was only wired
up in commit 88674088d10c ("x86: Use vga_default_device() when
determining whether an fb is primary"). That patch doesn't explain why
we still fall back to the shadow rom check.

- fix commit message style (i.e., commit 1234 ("..."))
- fix Daniel's S-o-b address

- add back an S-o-b tag with Daniel's Intel address

Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
Cc: Helge Deller <deller at gmx.de>
Cc: Daniel Vetter <daniel at ffwll.ch>
Cc: Javier Martinez Canillas <javierm at redhat.com>
Cc: Thomas Zimmermann <tzimmermann at suse.de>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Ingo Molnar <mingo at redhat.com>
Cc: Borislav Petkov <bp at alien8.de>
Cc: Dave Hansen <dave.hansen at linux.intel.com>
Cc: x86 at kernel.org
Cc: "H. Peter Anvin" <hpa at zytor.com>
Reviewed-by: Javier Martinez Canillas <javierm at redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-9-tzimmermann@suse.de
(cherry picked from commit 5ca1479cd35d9003040e6ac829380debe89b802b)
Signed-off-by: Kai-Heng Feng <kai.heng.feng at canonical.com>
 arch/x86/video/fbdev.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/arch/x86/video/fbdev.c b/arch/x86/video/fbdev.c
index 9fd24846d094..5ec4eafbb981 100644
--- a/arch/x86/video/fbdev.c
+++ b/arch/x86/video/fbdev.c
@@ -14,26 +14,15 @@
 int fb_is_primary_device(struct fb_info *info)
 	struct device *device = info->device;
-	struct pci_dev *default_device = vga_default_device();
 	struct pci_dev *pci_dev;
-	struct resource *res;
 	if (!device || !dev_is_pci(device))
 		return 0;
 	pci_dev = to_pci_dev(device);
-	if (default_device) {
-		if (pci_dev == default_device)
-			return 1;
-		return 0;
-	}
-	res = pci_dev->resource + PCI_ROM_RESOURCE;
-	if (res->flags & IORESOURCE_ROM_SHADOW)
+	if (pci_dev == vga_default_device())
 		return 1;
 	return 0;

More information about the kernel-team mailing list