diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-10-20 12:59:19 (GMT) |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-10-20 12:59:19 (GMT) |
commit | 2f540738f8d228016c6cd0d3b303896c174ecee3 (patch) | |
tree | 7e6574c041ac4386763f94d3d401d70f4ab6f55b /drivers/pci/probe.c | |
parent | a3849a4c038a21075a0bc7eaf37f65a93976d10c (diff) | |
parent | d8e9c00e38f6947cef7f5466a0a3d369461ab97f (diff) | |
download | linux-fsl-qoriq-2f540738f8d228016c6cd0d3b303896c174ecee3.tar.xz |
Merge branch 'tegra/cleanup' into next/cleanup
Diffstat (limited to 'drivers/pci/probe.c')
-rw-r--r-- | drivers/pci/probe.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index f3f94a5..6ab6bd3 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -1458,12 +1458,24 @@ static int pcie_bus_configure_set(struct pci_dev *dev, void *data) */ void pcie_bus_configure_settings(struct pci_bus *bus, u8 mpss) { - u8 smpss = mpss; + u8 smpss; if (!pci_is_pcie(bus->self)) return; + if (pcie_bus_config == PCIE_BUS_TUNE_OFF) + return; + + /* FIXME - Peer to peer DMA is possible, though the endpoint would need + * to be aware to the MPS of the destination. To work around this, + * simply force the MPS of the entire system to the smallest possible. + */ + if (pcie_bus_config == PCIE_BUS_PEER2PEER) + smpss = 0; + if (pcie_bus_config == PCIE_BUS_SAFE) { + smpss = mpss; + pcie_find_smpss(bus->self, &smpss); pci_walk_bus(bus, pcie_find_smpss, &smpss); } |