2023-10-02 12:28:49

by Sui Jingfeng

[permalink] [raw]
Subject: [PATCH pci-next v6 2/2] PCI/VGA: Remove vga_is_firmware_default() function

The new implemented pci_boot_vga_capturer() function is also effective on
X86 and IA64, it can determine the default boot VGA device before VRAM BAR
relocations done by the PCI core. Since the fixup handler has already
identified the firmware framebuffer, there no need to look again later. So,
switch to using the pci_boot_vga_capturer() on X86 and IA64 also, remove
vga_is_firmware_default() and its relevant codes.

Signed-off-by: Sui Jingfeng <[email protected]>
---
drivers/pci/vgaarb.c | 46 +++-----------------------------------------
1 file changed, 3 insertions(+), 43 deletions(-)

diff --git a/drivers/pci/vgaarb.c b/drivers/pci/vgaarb.c
index 02821c0f4cd0..a3f53982b131 100644
--- a/drivers/pci/vgaarb.c
+++ b/drivers/pci/vgaarb.c
@@ -50,7 +50,6 @@ struct vga_device {
unsigned int io_norm_cnt; /* normal IO count */
unsigned int mem_norm_cnt; /* normal MEM count */
bool bridge_has_one_vga;
- bool is_firmware_default; /* device selected by firmware */
unsigned int (*set_decode)(struct pci_dev *pdev, bool decode);
};

@@ -557,41 +556,6 @@ void vga_put(struct pci_dev *pdev, unsigned int rsrc)
}
EXPORT_SYMBOL(vga_put);

-static bool vga_is_firmware_default(struct pci_dev *pdev)
-{
-#if defined(CONFIG_X86) || defined(CONFIG_IA64)
- u64 base = screen_info.lfb_base;
- u64 size = screen_info.lfb_size;
- struct resource *r;
- u64 limit;
-
- /* 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;
- }
-#else
- if (pdev_boot_vga && pdev_boot_vga == pdev)
- return true;
-#endif
- return false;
-}
-
static bool vga_arb_integrated_gpu(struct device *dev)
{
#if defined(CONFIG_ACPI)
@@ -623,14 +587,10 @@ static bool vga_is_boot_device(struct vga_device *vgadev)
*/

/*
- * We always prefer a firmware default device, so if we've already
- * found one, there's no need to consider vgadev.
+ * We always prefer a firmware default device.
*/
- if (boot_vga && boot_vga->is_firmware_default)
- return false;
-
- if (vga_is_firmware_default(pdev)) {
- vgadev->is_firmware_default = true;
+ if (pdev == pdev_boot_vga) {
+ vgaarb_dbg(&pdev->dev, "Boot VGA selected by firmware\n");
return true;
}

--
2.34.1