a773a38
From c2e1d84523ad2a19e5be08c1f01999cc9e82652e Mon Sep 17 00:00:00 2001
a773a38
From: Brian King <brking@linux.vnet.ibm.com>
a773a38
Date: Mon, 08 Apr 2013 03:05:10 +0000
a773a38
Subject: powerpc: Set default VGA device
a773a38
a773a38
Add a PCI quirk for VGA devices on Power to set the default VGA device.
a773a38
Ensures a default VGA is always set if a graphics adapter is present,
a773a38
even if firmware did not initialize it. If more than one graphics
a773a38
adapter is present, ensure the one initialized by firmware is set
a773a38
as the default VGA device. This ensures that X autoconfiguration
a773a38
will work.
a773a38
a773a38
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
a773a38
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
a773a38
---
a773a38
(limited to 'arch/powerpc/kernel/pci-common.c')
a773a38
a773a38
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
a773a38
index 0324758..f325dc9 100644
a773a38
--- a/arch/powerpc/kernel/pci-common.c
a773a38
+++ b/arch/powerpc/kernel/pci-common.c
a773a38
@@ -30,6 +30,7 @@
a773a38
 #include <linux/irq.h>
a773a38
 #include <linux/vmalloc.h>
a773a38
 #include <linux/slab.h>
a773a38
+#include <linux/vgaarb.h>
a773a38
 
a773a38
 #include <asm/processor.h>
a773a38
 #include <asm/io.h>
a773a38
@@ -1734,3 +1735,15 @@ static void fixup_hide_host_resource_fsl(struct pci_dev *dev)
a773a38
 }
a773a38
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl);
a773a38
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl);
a773a38
+
a773a38
+static void fixup_vga(struct pci_dev *pdev)
a773a38
+{
a773a38
+	u16 cmd;
a773a38
+
a773a38
+	pci_read_config_word(pdev, PCI_COMMAND, &cmd);
a773a38
+	if ((cmd & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) || !vga_default_device())
a773a38
+		vga_set_default_device(pdev);
a773a38
+
a773a38
+}
a773a38
+DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
a773a38
+			      PCI_CLASS_DISPLAY_VGA, 8, fixup_vga);
a773a38
--
a773a38
cgit v0.9.1