MIPS: Lantiq: Use the real EXIN count
authorJohn Crispin <john@phrozen.org>
Thu, 9 Jun 2016 15:09:52 +0000 (17:09 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Sun, 24 Jul 2016 10:31:58 +0000 (12:31 +0200)
We runtime load the available external interrupts into an array and store
the number inside exin_avail. Some of the code however uses MAX_EIU for
looping over the array which may partially be 0. This is a cosmetic fix as
the existing code works as is. It is just nicer to only loop over the array
elements that were actually populated during probe.

Signed-off-by: John Crispin <john@phrozen.org>
Cc: Linux-MIPS <linux-mips@linux-mips.org>
Patchwork: https://patchwork.linux-mips.org/patch/13602/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/lantiq/irq.c

index bb1c39e..67495be 100644 (file)
@@ -125,7 +125,7 @@ static int ltq_eiu_settype(struct irq_data *d, unsigned int type)
 {
        int i;
 
-       for (i = 0; i < MAX_EIU; i++) {
+       for (i = 0; i < exin_avail; i++) {
                if (d->hwirq == ltq_eiu_irq[i]) {
                        int val = 0;
                        int edge = 0;
@@ -173,7 +173,7 @@ static unsigned int ltq_startup_eiu_irq(struct irq_data *d)
        int i;
 
        ltq_enable_irq(d);
-       for (i = 0; i < MAX_EIU; i++) {
+       for (i = 0; i < exin_avail; i++) {
                if (d->hwirq == ltq_eiu_irq[i]) {
                        /* by default we are low level triggered */
                        ltq_eiu_settype(d, IRQF_TRIGGER_LOW);
@@ -195,7 +195,7 @@ static void ltq_shutdown_eiu_irq(struct irq_data *d)
        int i;
 
        ltq_disable_irq(d);
-       for (i = 0; i < MAX_EIU; i++) {
+       for (i = 0; i < exin_avail; i++) {
                if (d->hwirq == ltq_eiu_irq[i]) {
                        /* disable */
                        ltq_eiu_w32(ltq_eiu_r32(LTQ_EIU_EXIN_INEN) & ~BIT(i),