diff options
Diffstat (limited to 'target/linux/bcm53xx/patches-4.4/180-PCI-iproc-Fix-BCMA-PCIe-bus-scanning-regression.patch')
-rw-r--r-- | target/linux/bcm53xx/patches-4.4/180-PCI-iproc-Fix-BCMA-PCIe-bus-scanning-regression.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/patches-4.4/180-PCI-iproc-Fix-BCMA-PCIe-bus-scanning-regression.patch b/target/linux/bcm53xx/patches-4.4/180-PCI-iproc-Fix-BCMA-PCIe-bus-scanning-regression.patch new file mode 100644 index 0000000000..21c7716846 --- /dev/null +++ b/target/linux/bcm53xx/patches-4.4/180-PCI-iproc-Fix-BCMA-PCIe-bus-scanning-regression.patch @@ -0,0 +1,51 @@ +From patchwork Wed Jan 20 22:55:10 2016 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: PCI: iproc: Fix BCMA PCIe bus scanning regression +From: Ray Jui <rjui@broadcom.com> +X-Patchwork-Id: 570953 +Message-Id: <1453330510-21926-1-git-send-email-rjui@broadcom.com> +To: Bjorn Helgaas <bhelgaas@google.com> +Cc: Rafal Milecki <zajec5@gmail.com>, Hante Meuleman <meuleman@broadcom.com>, + Hauke Mehrtens <hauke@hauke-m.de>, <linux-kernel@vger.kernel.org>, + <bcm-kernel-feedback-list@broadcom.com>, + <linux-pci@vger.kernel.org>, Ray Jui <rjui@broadcom.com> +Date: Wed, 20 Jan 2016 14:55:10 -0800 + +Commit 943ebae781f5 ("PCI: iproc: Add PAXC interface support") causes +regression on EP device detection on BCMA based platforms. This patch +fixes the issue by allowing multiple devices to be configured on the +same bus, for all PAXB based child buses + +Reported-by: Rafal Milecki <zajec5@gmail.com> +Fixes: 943ebae781f5 ("PCI: iproc: Add PAXC interface support") +Signed-off-by: Ray Jui <rjui@broadcom.com> +--- + drivers/pci/host/pcie-iproc.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/pci/host/pcie-iproc.c ++++ b/drivers/pci/host/pcie-iproc.c +@@ -171,10 +171,11 @@ static inline void iproc_pcie_ob_write(s + } + + static inline bool iproc_pcie_device_is_valid(struct iproc_pcie *pcie, ++ unsigned int busnum, + unsigned int slot, + unsigned int fn) + { +- if (slot > 0) ++ if ((pcie->type == IPROC_PCIE_PAXC || busnum == 0) && slot > 0) + return false; + + /* PAXC can only support limited number of functions */ +@@ -199,7 +200,7 @@ static void __iomem *iproc_pcie_map_cfg_ + u32 val; + u16 offset; + +- if (!iproc_pcie_device_is_valid(pcie, slot, fn)) ++ if (!iproc_pcie_device_is_valid(pcie, busno, slot, fn)) + return NULL; + + /* root complex access */ |