Commit 337bf13a authored by Mario Limonciello (AMD)'s avatar Mario Limonciello (AMD)
Browse files

PCI/VGA: Replace vga_is_firmware_default() with a screen info check



vga_is_firmware_default() checks firmware resources to find the owner
framebuffer resources to find the firmware PCI device.  This is an
open coded implementation of screen_info_pci_dev().  Switch to using
screen_info_pci_dev() instead.

Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Suggested-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20250811162606.587759-3-superm1@kernel.org


Signed-off-by: default avatarMario Limonciello (AMD) <superm1@kernel.org>
parent 6e490dea
Loading
Loading
Loading
Loading
+5 −26
Original line number Diff line number Diff line
@@ -556,34 +556,13 @@ EXPORT_SYMBOL(vga_put);

static bool vga_is_firmware_default(struct pci_dev *pdev)
{
#if defined(CONFIG_X86)
	u64 base = screen_info.lfb_base;
	u64 size = screen_info.lfb_size;
	struct resource *r;
	u64 limit;
#ifdef CONFIG_SCREEN_INFO
	struct screen_info *si = &screen_info;

	/* Select the device owning the boot framebuffer if there is one */

	if (screen_info.capabilities & VIDEO_CAPABILITY_64BIT_BASE)
		base |= (u64)screen_info.ext_lfb_base << 32;

	limit = base + size;

	/* Does firmware framebuffer belong to us? */
	pci_dev_for_each_resource(pdev, r) {
		if (resource_type(r) != IORESOURCE_MEM)
			continue;

		if (!r->start || !r->end)
			continue;

		if (base < r->start || limit >= r->end)
			continue;

		return true;
	}
#endif
	return pdev == screen_info_pci_dev(si);
#else
	return false;
#endif
}

static bool vga_arb_integrated_gpu(struct device *dev)