aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/lantiq/irq.c
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2011-07-18 18:08:40 +0200
committerRalf Baechle <ralf@linux-mips.org>2011-09-21 17:53:12 +0200
commit77fbdb30f045084f1c65b72bd457d7406343aad7 (patch)
tree763d2b9e2890ec073cca9207f8f0dfdda0e835c3 /arch/mips/lantiq/irq.c
parentd954ffe34a606d4ec34cd3c2b0b5974779759f25 (diff)
downloadkernel_samsung_smdk4412-77fbdb30f045084f1c65b72bd457d7406343aad7.zip
kernel_samsung_smdk4412-77fbdb30f045084f1c65b72bd457d7406343aad7.tar.gz
kernel_samsung_smdk4412-77fbdb30f045084f1c65b72bd457d7406343aad7.tar.bz2
MIPS: Lantiq: Fix external interrupt sources
The irq base offset needs to be ignored when matching irqs to external interrupt pins. Taking the offset into account resulted in the EIU not being brought up properly. Signed-off-by: John Crispin <blogic@openwrt.org> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/2616/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/lantiq/irq.c')
-rw-r--r--arch/mips/lantiq/irq.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
index fc89795..f9737bb 100644
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -123,11 +123,10 @@ void ltq_enable_irq(struct irq_data *d)
static unsigned int ltq_startup_eiu_irq(struct irq_data *d)
{
int i;
- int irq_nr = d->irq - INT_NUM_IRQ0;
ltq_enable_irq(d);
for (i = 0; i < MAX_EIU; i++) {
- if (irq_nr == ltq_eiu_irq[i]) {
+ if (d->irq == ltq_eiu_irq[i]) {
/* low level - we should really handle set_type */
ltq_eiu_w32(ltq_eiu_r32(LTQ_EIU_EXIN_C) |
(0x6 << (i * 4)), LTQ_EIU_EXIN_C);
@@ -147,11 +146,10 @@ static unsigned int ltq_startup_eiu_irq(struct irq_data *d)
static void ltq_shutdown_eiu_irq(struct irq_data *d)
{
int i;
- int irq_nr = d->irq - INT_NUM_IRQ0;
ltq_disable_irq(d);
for (i = 0; i < MAX_EIU; i++) {
- if (irq_nr == ltq_eiu_irq[i]) {
+ if (d->irq == ltq_eiu_irq[i]) {
/* disable */
ltq_eiu_w32(ltq_eiu_r32(LTQ_EIU_EXIN_INEN) & ~(1 << i),
LTQ_EIU_EXIN_INEN);