MIPS: Lantiq: Register IRQ handler for virtual IRQ number
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 6 Jun 2016 21:28:33 +0000 (23:28 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Sun, 24 Jul 2016 10:39:59 +0000 (12:39 +0200)
We used the hardware IRQ number to register the IRQ handler and not the
virtual one. This probably caused some problems because the hardware
IRQ numbers are only unique for each IRQ controller and not in the
system. The virtual IRQ number is managed by Linux and unique in the
system. This was probably the reason there was a gab of 8 IRQ numbers added
before the numbers used for the lantiq IRQ controller. With the current
setup the hardware and the virtual IRQ numbers are the same.

Reported-by: Thomas Langer <thomas.langer@intel.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: John Crispin <john@phrozen.org>
Cc: thomas.langer@intel.com
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/13539/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/lantiq/irq.c

index bb1c39e0ce4d35cadcea5add773230a8c3fc0778..7cce277b017f7cec5953f6209425dcfc16ad2180 100644 (file)
@@ -344,7 +344,7 @@ static int icu_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw)
                if (hw == ltq_eiu_irq[i])
                        chip = &ltq_eiu_type;
 
-       irq_set_chip_and_handler(hw, chip, handle_level_irq);
+       irq_set_chip_and_handler(irq, chip, handle_level_irq);
 
        return 0;
 }