diff options
author | Luka Perkov <luka@openwrt.org> | 2015-11-18 21:36:36 +0000 |
---|---|---|
committer | Luka Perkov <luka@openwrt.org> | 2015-11-18 21:36:36 +0000 |
commit | 5f3d29f4e69db9cca1c65310c7ad6963f2e0aa02 (patch) | |
tree | f47af53a86c11488467745177772a58ff40a1160 /target/linux/imx6/patches-3.18/201-pci_imx6_ventana_fixup-for-IRQ-mismapping.patch | |
parent | 03401fed5ee06b343114ff9f6d24efa60526e736 (diff) | |
download | upstream-5f3d29f4e69db9cca1c65310c7ad6963f2e0aa02.tar.gz upstream-5f3d29f4e69db9cca1c65310c7ad6963f2e0aa02.tar.bz2 upstream-5f3d29f4e69db9cca1c65310c7ad6963f2e0aa02.zip |
imx6: drop support for kernel 3.18
Signed-off-by: Luka Perkov <luka@openwrt.org>
SVN-Revision: 47509
Diffstat (limited to 'target/linux/imx6/patches-3.18/201-pci_imx6_ventana_fixup-for-IRQ-mismapping.patch')
-rw-r--r-- | target/linux/imx6/patches-3.18/201-pci_imx6_ventana_fixup-for-IRQ-mismapping.patch | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/target/linux/imx6/patches-3.18/201-pci_imx6_ventana_fixup-for-IRQ-mismapping.patch b/target/linux/imx6/patches-3.18/201-pci_imx6_ventana_fixup-for-IRQ-mismapping.patch deleted file mode 100644 index 4db1569d89..0000000000 --- a/target/linux/imx6/patches-3.18/201-pci_imx6_ventana_fixup-for-IRQ-mismapping.patch +++ /dev/null @@ -1,81 +0,0 @@ -commit 2c0d0491438433a1f327f2e754c7b6b55fec51c4 -Author: Tim Harvey <tharvey@gateworks.com> -Date: Thu Feb 27 00:59:53 2014 -0800 - - PCI: imx6: ventana: fixup for IRQ mismapping - - The TI XIO2001 PCIe-to-PCI bridge used on several Ventana expansion boards - has its slot-to-bridge IRQ mapping reversed from the PCI specification: - - INTA->INTD - INTB->INTC - INTC->INTB - INTD->INTA - - Implement a custom swizzle function that does a fixup on the interrupt for - devices on a TI XIO2001 bridge. - - Signed-off-by: Tim Harvey <tharvey@gateworks.com> - ---- a/drivers/pci/host/pci-imx6.c -+++ b/drivers/pci/host/pci-imx6.c -@@ -553,6 +553,39 @@ static int __init imx6_add_pcie_port(str - return 0; - } - -+/* TI XIO2001 PCIe-to-PCI bridge on GW16082 exp card has IRQs reversed */ -+u8 ventana_swizzle(struct pci_dev *dev, u8 *pin) -+{ -+ u8 i = 0; -+ struct pci_dev *pdev = dev; -+ -+ /* count number of TI XIO2001 bridges on bus */ -+ while (!pci_is_root_bus(pdev->bus)) { -+ if (pdev->bus && pdev->bus->self && -+ (pdev->bus->self->vendor == PCI_VENDOR_ID_TI) && -+ (pdev->bus->self->device == PCI_DEVICE_ID_TI_XIO2001)) { -+ i++; -+ } -+ pdev = pdev->bus->self; -+ } -+ while (!pci_is_root_bus(dev->bus)) { -+ /* if we are directly downstream from 1st TI XIO2001 bridge */ -+ if (dev->bus && dev->bus->self && -+ (dev->bus->self->vendor == PCI_VENDOR_ID_TI) && -+ (dev->bus->self->device == PCI_DEVICE_ID_TI_XIO2001)) { -+ if (--i == 0) { -+ /* swap IRQs and swizzle backwards */ -+ *pin = (15 - PCI_SLOT(dev->devfn)) + 1; -+ dev = dev->bus->self; -+ continue; -+ } -+ } -+ *pin = pci_swizzle_interrupt_pin(dev, *pin); -+ dev = dev->bus->self; -+ } -+ return PCI_SLOT(dev->devfn); -+} -+ - static int __init imx6_pcie_probe(struct platform_device *pdev) - { - struct imx6_pcie *imx6_pcie; -@@ -618,6 +651,9 @@ static int __init imx6_pcie_probe(struct - return PTR_ERR(imx6_pcie->iomuxc_gpr); - } - -+ if (of_machine_is_compatible("gw,ventana")) -+ pp->swizzle = ventana_swizzle; -+ - ret = imx6_add_pcie_port(pp, pdev); - if (ret < 0) - return ret; ---- a/include/linux/pci_ids.h -+++ b/include/linux/pci_ids.h -@@ -827,6 +827,7 @@ - #define PCI_DEVICE_ID_TI_XX12 0x8039 - #define PCI_DEVICE_ID_TI_XX12_FM 0x803b - #define PCI_DEVICE_ID_TI_XIO2000A 0x8231 -+#define PCI_DEVICE_ID_TI_XIO2001 0x8240 - #define PCI_DEVICE_ID_TI_1130 0xac12 - #define PCI_DEVICE_ID_TI_1031 0xac13 - #define PCI_DEVICE_ID_TI_1131 0xac15 |