aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/cns3xxx
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-10-07 10:37:48 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-10-07 10:37:48 +0000
commit9c1ce81f5a0675e2275ba28a33cc9165d1f8b6bd (patch)
tree8d82c1617c13da730f7d9fdb9eba015e3ce35256 /target/linux/cns3xxx
parent461cef419390d15106894bc0df513df86b3cadeb (diff)
downloadmaster-187ad058-9c1ce81f5a0675e2275ba28a33cc9165d1f8b6bd.tar.gz
master-187ad058-9c1ce81f5a0675e2275ba28a33cc9165d1f8b6bd.tar.bz2
master-187ad058-9c1ce81f5a0675e2275ba28a33cc9165d1f8b6bd.zip
cns3xxx: fix shared PCI interrupt mapping
This patch originally failed to combine INTA/B/C/D onto a single ARM CPU interrupt. Instead, it mapped INTA/B/C and excluded D. This patch corrects the issue by mapping all four interrupts to the single ARM CPU interrupt. The original intent of the patch still holds as the newer PCB take advantage of isolated interrupts. This fix only applies to older PCB's that do not route INTA/B/C/D to unique external ARM CPU interrupts. Signed-off-by: Pushpal Sidhu <psidhu@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42830 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/cns3xxx')
-rw-r--r--target/linux/cns3xxx/patches-3.10/310-pci_isolated_interrupts.patch7
1 files changed, 2 insertions, 5 deletions
diff --git a/target/linux/cns3xxx/patches-3.10/310-pci_isolated_interrupts.patch b/target/linux/cns3xxx/patches-3.10/310-pci_isolated_interrupts.patch
index 03f0009393..d181cc2fc9 100644
--- a/target/linux/cns3xxx/patches-3.10/310-pci_isolated_interrupts.patch
+++ b/target/linux/cns3xxx/patches-3.10/310-pci_isolated_interrupts.patch
@@ -30,7 +30,7 @@
#include <linux/gpio.h>
#include <linux/dma-mapping.h>
#include <linux/serial_core.h>
-@@ -869,12 +870,45 @@ static int laguna_register_gpio(struct g
+@@ -869,12 +870,42 @@ static int laguna_register_gpio(struct g
return ret;
}
@@ -70,10 +70,7 @@
+ }
+ printk("laguna: using shared PCI interrupts: irq%d\n",
+ IRQ_CNS3XXX_PCIE0_DEVICE);
-+ irqs[0] = IRQ_CNS3XXX_PCIE0_DEVICE;
-+ irqs[1] = IRQ_CNS3XXX_PCIE0_DEVICE;
-+ irqs[2] = IRQ_CNS3XXX_PCIE0_DEVICE;
-+ return cns3xxx_pcie_init(irqs, NULL);
++ return cns3xxx_pcie_init(NULL, NULL);
}
subsys_initcall(laguna_pcie_init);