linux-mips
[Top] [All Lists]

[PATCH 1/3] MIPS: lantiq: fixes external interruot sources

To: Ralf Baechle <ralf@linux-mips.org>
Subject: [PATCH 1/3] MIPS: lantiq: fixes external interruot sources
From: John Crispin <blogic@openwrt.org>
Date: Mon, 18 Jul 2011 22:04:11 +0200
Cc: John Crispin <blogic@openwrt.org>, linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
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
---
 arch/mips/lantiq/irq.c |    6 ++----
 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);
-- 
1.7.2.3


<Prev in Thread] Current Thread [Next in Thread>