ARM: sirf: fix prima2 interrupt lookup
authorArnd Bergmann <arnd@arndb.de>
Tue, 19 Mar 2013 14:31:08 +0000 (15:31 +0100)
committerArnd Bergmann <arnd@arndb.de>
Mon, 25 Mar 2013 11:25:41 +0000 (12:25 +0100)
We must not read the interrupts property manually but instead
use irq_of_parse_and_map() to guarantee that we get the correct
interrupt number once we stop using the legacy IRQ domain.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Barry Song <Baohua.Song@csr.com>
arch/arm/mach-prima2/timer-prima2.c

index 6da584f8a949482091ce3a9666fa7993f5cf978b..982908350b46c5eae27dbab634789842e5feec07 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/err.h>
 #include <linux/slab.h>
 #include <linux/of.h>
+#include <linux/of_irq.h>
 #include <linux/of_address.h>
 #include <mach/map.h>
 #include <asm/sched_clock.h>
@@ -223,7 +224,6 @@ static struct of_device_id timer_ids[] = {
 static void __init sirfsoc_of_timer_map(void)
 {
        struct device_node *np;
-       const unsigned int *intspec;
 
        np = of_find_matching_node(NULL, timer_ids);
        if (!np)
@@ -233,9 +233,7 @@ static void __init sirfsoc_of_timer_map(void)
                panic("unable to map timer cpu registers\n");
 
        /* Get the interrupts property */
-       intspec = of_get_property(np, "interrupts", NULL);
-       BUG_ON(!intspec);
-       sirfsoc_timer_irq.irq = be32_to_cpup(intspec);
+       sirfsoc_timer_irq.irq = irq_of_parse_and_map(np, 0);
 
        of_node_put(np);
 }
This page took 0.027518 seconds and 5 git commands to generate.