ARM: sirf: fix prima2 interrupt lookup
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>
This commit is contained in:
parent
b426476a5c
commit
67d71344fd
1 changed files with 2 additions and 4 deletions
|
@ -16,6 +16,7 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
|
#include <linux/of_irq.h>
|
||||||
#include <linux/of_address.h>
|
#include <linux/of_address.h>
|
||||||
#include <mach/map.h>
|
#include <mach/map.h>
|
||||||
#include <asm/sched_clock.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)
|
static void __init sirfsoc_of_timer_map(void)
|
||||||
{
|
{
|
||||||
struct device_node *np;
|
struct device_node *np;
|
||||||
const unsigned int *intspec;
|
|
||||||
|
|
||||||
np = of_find_matching_node(NULL, timer_ids);
|
np = of_find_matching_node(NULL, timer_ids);
|
||||||
if (!np)
|
if (!np)
|
||||||
|
@ -233,9 +233,7 @@ static void __init sirfsoc_of_timer_map(void)
|
||||||
panic("unable to map timer cpu registers\n");
|
panic("unable to map timer cpu registers\n");
|
||||||
|
|
||||||
/* Get the interrupts property */
|
/* Get the interrupts property */
|
||||||
intspec = of_get_property(np, "interrupts", NULL);
|
sirfsoc_timer_irq.irq = irq_of_parse_and_map(np, 0);
|
||||||
BUG_ON(!intspec);
|
|
||||||
sirfsoc_timer_irq.irq = be32_to_cpup(intspec);
|
|
||||||
|
|
||||||
of_node_put(np);
|
of_node_put(np);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue