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