[PATCH 2/8] ARM: sirf: fix prima2 interrupt lookup

Barry Song 21cnbao at gmail.com
Mon Mar 25 01:44:25 EDT 2013


2013/3/20 Arnd Bergmann <arnd at arndb.de>:
> 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 at arndb.de>

Tested-by: Barry Song <Baohua.Song at csr.com>

> ---
>  arch/arm/mach-prima2/timer-prima2.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/mach-prima2/timer-prima2.c b/arch/arm/mach-prima2/timer-prima2.c
> index 6da584f..9829083 100644
> --- a/arch/arm/mach-prima2/timer-prima2.c
> +++ b/arch/arm/mach-prima2/timer-prima2.c
> @@ -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);
>  }
> --
> 1.8.1.2



More information about the linux-arm-kernel mailing list