summaryrefslogtreecommitdiffstats
path: root/arch/x86/pci/common.c
diff options
context:
space:
mode:
authorBjorn Helgaas2012-05-07 17:23:27 +0200
committerBjorn Helgaas2012-05-07 17:23:27 +0200
commit0cbaa57d828aa0a067e06d3c6d795b12ae9fb776 (patch)
tree871e08f70566b16736ae228eddac018c77ca1144 /arch/x86/pci/common.c
parentMAINTAINERS: update PCI git tree and patchwork (diff)
parentPCI: work around Stratus ftServer broken PCIe hierarchy (diff)
downloadkernel-qcow2-linux-0cbaa57d828aa0a067e06d3c6d795b12ae9fb776.tar.gz
kernel-qcow2-linux-0cbaa57d828aa0a067e06d3c6d795b12ae9fb776.tar.xz
kernel-qcow2-linux-0cbaa57d828aa0a067e06d3c6d795b12ae9fb776.zip
Merge branch 'topic/stratus' into next
Diffstat (limited to 'arch/x86/pci/common.c')
-rw-r--r--arch/x86/pci/common.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index 8e04ec591543..0ad990a20d4a 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -11,6 +11,7 @@
#include <linux/dmi.h>
#include <linux/slab.h>
+#include <asm-generic/pci-bridge.h>
#include <asm/acpi.h>
#include <asm/segment.h>
#include <asm/io.h>
@@ -229,6 +230,14 @@ static int __devinit assign_all_busses(const struct dmi_system_id *d)
}
#endif
+static int __devinit set_scan_all(const struct dmi_system_id *d)
+{
+ printk(KERN_INFO "PCI: %s detected, enabling pci=pcie_scan_all\n",
+ d->ident);
+ pci_add_flags(PCI_SCAN_ALL_PCIE_DEVS);
+ return 0;
+}
+
static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = {
#ifdef __i386__
/*
@@ -420,6 +429,13 @@ static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"),
},
},
+ {
+ .callback = set_scan_all,
+ .ident = "Stratus/NEC ftServer",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ftServer"),
+ },
+ },
{}
};