aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/pci.c3
-rw-r--r--drivers/pci/probe.c8
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 9e31c0ab650e..8f169002dc7e 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -22,6 +22,7 @@
22#include <linux/interrupt.h> 22#include <linux/interrupt.h>
23#include <linux/device.h> 23#include <linux/device.h>
24#include <linux/pm_runtime.h> 24#include <linux/pm_runtime.h>
25#include <asm-generic/pci-bridge.h>
25#include <asm/setup.h> 26#include <asm/setup.h>
26#include "pci.h" 27#include "pci.h"
27 28
@@ -3900,6 +3901,8 @@ static int __init pci_setup(char *str)
3900 pcie_bus_config = PCIE_BUS_PERFORMANCE; 3901 pcie_bus_config = PCIE_BUS_PERFORMANCE;
3901 } else if (!strncmp(str, "pcie_bus_peer2peer", 18)) { 3902 } else if (!strncmp(str, "pcie_bus_peer2peer", 18)) {
3902 pcie_bus_config = PCIE_BUS_PEER2PEER; 3903 pcie_bus_config = PCIE_BUS_PEER2PEER;
3904 } else if (!strncmp(str, "pcie_scan_all", 13)) {
3905 pci_add_flags(PCI_SCAN_ALL_PCIE_DEVS);
3903 } else { 3906 } else {
3904 printk(KERN_ERR "PCI: Unknown option `%s'\n", 3907 printk(KERN_ERR "PCI: Unknown option `%s'\n",
3905 str); 3908 str);
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 4c2f22668ea7..658ac977cb56 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -10,6 +10,7 @@
10#include <linux/module.h> 10#include <linux/module.h>
11#include <linux/cpumask.h> 11#include <linux/cpumask.h>
12#include <linux/pci-aspm.h> 12#include <linux/pci-aspm.h>
13#include <asm-generic/pci-bridge.h>
13#include "pci.h" 14#include "pci.h"
14 15
15#define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */ 16#define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */
@@ -1336,10 +1337,13 @@ static unsigned no_next_fn(struct pci_dev *dev, unsigned fn)
1336static int only_one_child(struct pci_bus *bus) 1337static int only_one_child(struct pci_bus *bus)
1337{ 1338{
1338 struct pci_dev *parent = bus->self; 1339 struct pci_dev *parent = bus->self;
1340
1339 if (!parent || !pci_is_pcie(parent)) 1341 if (!parent || !pci_is_pcie(parent))
1340 return 0; 1342 return 0;
1341 if (parent->pcie_type == PCI_EXP_TYPE_ROOT_PORT || 1343 if (parent->pcie_type == PCI_EXP_TYPE_ROOT_PORT)
1342 parent->pcie_type == PCI_EXP_TYPE_DOWNSTREAM) 1344 return 1;
1345 if (parent->pcie_type == PCI_EXP_TYPE_DOWNSTREAM &&
1346 !pci_has_flag(PCI_SCAN_ALL_PCIE_DEVS))
1343 return 1; 1347 return 1;
1344 return 0; 1348 return 0;
1345} 1349}