diff options
Diffstat (limited to 'target/linux/bcm53xx/patches-4.1/033-0001-PCI-iproc-enable-arm64-support-for-iProc-PCIe.patch')
-rw-r--r-- | target/linux/bcm53xx/patches-4.1/033-0001-PCI-iproc-enable-arm64-support-for-iProc-PCIe.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/target/linux/bcm53xx/patches-4.1/033-0001-PCI-iproc-enable-arm64-support-for-iProc-PCIe.patch b/target/linux/bcm53xx/patches-4.1/033-0001-PCI-iproc-enable-arm64-support-for-iProc-PCIe.patch deleted file mode 100644 index 78160f0..0000000 --- a/target/linux/bcm53xx/patches-4.1/033-0001-PCI-iproc-enable-arm64-support-for-iProc-PCIe.patch +++ /dev/null @@ -1,116 +0,0 @@ -From db9d6d790968fd6df9faa7fa1f51967e05afd492 Mon Sep 17 00:00:00 2001 -From: Ray Jui <rjui@broadcom.com> -Date: Mon, 27 Jul 2015 15:42:18 -0700 -Subject: [PATCH 1/4] PCI: iproc: enable arm64 support for iProc PCIe - -PCI: iproc: Add arm64 support - -Add arm64 support to the iProc PCIe driver. - -Note that on arm32, bus->sysdata points to the arm32-specific -pci_sys_data struct, and pci_sys_data.private_data contains the -iproc_pcie pointer. For arm64, there's nothing corresponding to -pci_sys_data, so we keep the iproc_pcie pointer directly in -bus->sysdata. - -In addition, arm64 does IRQ mapping in pcibios_add_device(), so it -doesn't need pci_fixup_irqs() as arm32 does. - -Signed-off-by: Ray Jui <rjui@broadcom.com> -Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> -Reviewed-by: Scott Branden <sbranden@broadcom.com> -Acked-by: Bjorn Helgaas <bhelgaas@google.com> -Signed-off-by: Olof Johansson <olof@lixom.net> ---- - drivers/pci/host/pcie-iproc.c | 27 ++++++++++++++++++++------- - drivers/pci/host/pcie-iproc.h | 4 +++- - 2 files changed, 23 insertions(+), 8 deletions(-) - ---- a/drivers/pci/host/pcie-iproc.c -+++ b/drivers/pci/host/pcie-iproc.c -@@ -58,9 +58,17 @@ - #define SYS_RC_INTX_EN 0x330 - #define SYS_RC_INTX_MASK 0xf - --static inline struct iproc_pcie *sys_to_pcie(struct pci_sys_data *sys) -+static inline struct iproc_pcie *iproc_data(struct pci_bus *bus) - { -- return sys->private_data; -+ struct iproc_pcie *pcie; -+#ifdef CONFIG_ARM -+ struct pci_sys_data *sys = bus->sysdata; -+ -+ pcie = sys->private_data; -+#else -+ pcie = bus->sysdata; -+#endif -+ return pcie; - } - - /** -@@ -71,8 +79,7 @@ static void __iomem *iproc_pcie_map_cfg_ - unsigned int devfn, - int where) - { -- struct pci_sys_data *sys = bus->sysdata; -- struct iproc_pcie *pcie = sys_to_pcie(sys); -+ struct iproc_pcie *pcie = iproc_data(bus); - unsigned slot = PCI_SLOT(devfn); - unsigned fn = PCI_FUNC(devfn); - unsigned busno = bus->number; -@@ -186,6 +193,7 @@ static void iproc_pcie_enable(struct ipr - int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res) - { - int ret; -+ void *sysdata; - struct pci_bus *bus; - - if (!pcie || !pcie->dev || !pcie->base) -@@ -205,10 +213,13 @@ int iproc_pcie_setup(struct iproc_pcie * - - iproc_pcie_reset(pcie); - -+#ifdef CONFIG_ARM - pcie->sysdata.private_data = pcie; -- -- bus = pci_create_root_bus(pcie->dev, 0, &iproc_pcie_ops, -- &pcie->sysdata, res); -+ sysdata = &pcie->sysdata; -+#else -+ sysdata = pcie; -+#endif -+ bus = pci_create_root_bus(pcie->dev, 0, &iproc_pcie_ops, sysdata, res); - if (!bus) { - dev_err(pcie->dev, "unable to create PCI root bus\n"); - ret = -ENOMEM; -@@ -226,7 +237,9 @@ int iproc_pcie_setup(struct iproc_pcie * - - pci_scan_child_bus(bus); - pci_assign_unassigned_bus_resources(bus); -+#ifdef CONFIG_ARM - pci_fixup_irqs(pci_common_swizzle, pcie->map_irq); -+#endif - pci_bus_add_devices(bus); - - return 0; ---- a/drivers/pci/host/pcie-iproc.h -+++ b/drivers/pci/host/pcie-iproc.h -@@ -21,7 +21,7 @@ - * @dev: pointer to device data structure - * @base: PCIe host controller I/O register base - * @resources: linked list of all PCI resources -- * @sysdata: Per PCI controller data -+ * @sysdata: Per PCI controller data (ARM-specific) - * @root_bus: pointer to root bus - * @phy: optional PHY device that controls the Serdes - * @irqs: interrupt IDs -@@ -29,7 +29,9 @@ - struct iproc_pcie { - struct device *dev; - void __iomem *base; -+#ifdef CONFIG_ARM - struct pci_sys_data sysdata; -+#endif - struct pci_bus *root_bus; - struct phy *phy; - int irqs[IPROC_PCIE_MAX_NUM_IRQS]; |