[PATCH V6 03/12] PCI/VGA: Split out vga_arb_update_default_device()
Huacai Chen
chenhuacai at loongson.cn
Thu Sep 16 08:29:32 UTC 2021
This patch is the first step of the rework: If there's no default VGA
device, and we find a VGA device that owns the legacy VGA resources, we
make that device the default. Split this logic out from vga_arbiter_add_
pci_device() into a new function, vga_arb_update_default_device().
Signed-off-by: Huacai Chen <chenhuacai at loongson.cn>
Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>
---
drivers/gpu/vga/vgaarb.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c
index 29e725ebaa43..f8f95244d499 100644
--- a/drivers/gpu/vga/vgaarb.c
+++ b/drivers/gpu/vga/vgaarb.c
@@ -579,6 +579,21 @@ static bool vga_arb_integrated_gpu(struct device *dev)
}
#endif
+static void vga_arb_update_default_device(struct vga_device *vgadev)
+{
+ struct pci_dev *pdev = vgadev->pdev;
+
+ /*
+ * If we don't have a default VGA device yet, and this device owns
+ * the legacy VGA resources, make it the default.
+ */
+ if (!vga_default_device() &&
+ ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
+ vgaarb_info(&pdev->dev, "setting as boot VGA device\n");
+ vga_set_default_device(pdev);
+ }
+}
+
/*
* Rules for using a bridge to control a VGA descendant decoding: if a bridge
* has only one VGA descendant then it can be used to control the VGA routing
@@ -706,15 +721,7 @@ static bool vga_arbiter_add_pci_device(struct pci_dev *pdev)
bus = bus->parent;
}
- /* Deal with VGA default device. Use first enabled one
- * by default if arch doesn't have it's own hook
- */
- if (!vga_default_device() &&
- ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) {
- vgaarb_info(&pdev->dev, "setting as boot VGA device\n");
- vga_set_default_device(pdev);
- }
-
+ vga_arb_update_default_device(vgadev);
vga_arbiter_check_bridge_sharing(vgadev);
/* Add to the list */
--
2.27.0
More information about the dri-devel
mailing list