openwrt/target/linux/imx6/patches-3.10/0034-PCI-imx6-swizzle-interrupts.patch
Luka Perkov 9e17f251d5 imx6: fix pcie interrupt mapping
The interrupt mapping for legacy interrupts was backwards causing interrupts
to be mapped improperly behind a PCIe to PCI bridge (ie GW16082 mezzanine).

Signed-off-by: Tim Harvey <tharvey@gateworks.com>

SVN-Revision: 38519
2013-10-23 22:26:54 +00:00

29 lines
796 B
Diff

From 73a0e49b562da9b06e487fb8e051075543495be5 Mon Sep 17 00:00:00 2001
From: Tim Harvey <tharvey@gateworks.com>
Date: Thu, 17 Oct 2013 15:50:48 -0700
Subject: [PATCH 1/5] PCI: imx6: swizzle interrupts
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
drivers/pci/host/pcie-designware.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- a/drivers/pci/host/pcie-designware.c
+++ b/drivers/pci/host/pcie-designware.c
@@ -676,7 +676,13 @@ int dw_pcie_map_irq(const struct pci_dev
{
struct pcie_port *pp = sys_to_pcie(dev->bus->sysdata);
- return pp->irq;
+ switch (pin) {
+ case 1: return pp->irq - 3;
+ case 2: return pp->irq - 2;
+ case 3: return pp->irq - 1;
+ case 4: return pp->irq;
+ default: return -1;
+ }
}
static void dw_pcie_add_bus(struct pci_bus *bus)