|
|
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
|