aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/mv64x60_pic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/sysdev/mv64x60_pic.c')
-rw-r--r--arch/powerpc/sysdev/mv64x60_pic.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/powerpc/sysdev/mv64x60_pic.c b/arch/powerpc/sysdev/mv64x60_pic.c
index 01d316287772..a145bfd003c7 100644
--- a/arch/powerpc/sysdev/mv64x60_pic.c
+++ b/arch/powerpc/sysdev/mv64x60_pic.c
@@ -204,7 +204,7 @@ static struct irq_chip mv64x60_chip_gpp = {
204 204
205static int mv64x60_host_match(struct irq_host *h, struct device_node *np) 205static int mv64x60_host_match(struct irq_host *h, struct device_node *np)
206{ 206{
207 return mv64x60_irq_host->host_data == np; 207 return h->of_node == np;
208} 208}
209 209
210static struct irq_chip *mv64x60_chips[] = { 210static struct irq_chip *mv64x60_chips[] = {
@@ -253,14 +253,12 @@ void __init mv64x60_init_irq(void)
253 np = of_find_compatible_node(NULL, NULL, "marvell,mv64x60-pic"); 253 np = of_find_compatible_node(NULL, NULL, "marvell,mv64x60-pic");
254 reg = of_get_property(np, "reg", &size); 254 reg = of_get_property(np, "reg", &size);
255 paddr = of_translate_address(np, reg); 255 paddr = of_translate_address(np, reg);
256 of_node_put(np);
257 mv64x60_irq_reg_base = ioremap(paddr, reg[1]); 256 mv64x60_irq_reg_base = ioremap(paddr, reg[1]);
258 257
259 mv64x60_irq_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, MV64x60_NUM_IRQS, 258 mv64x60_irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR,
259 MV64x60_NUM_IRQS,
260 &mv64x60_host_ops, MV64x60_NUM_IRQS); 260 &mv64x60_host_ops, MV64x60_NUM_IRQS);
261 261
262 mv64x60_irq_host->host_data = np;
263
264 spin_lock_irqsave(&mv64x60_lock, flags); 262 spin_lock_irqsave(&mv64x60_lock, flags);
265 out_le32(mv64x60_gpp_reg_base + MV64x60_GPP_INTR_MASK, 263 out_le32(mv64x60_gpp_reg_base + MV64x60_GPP_INTR_MASK,
266 mv64x60_cached_gpp_mask); 264 mv64x60_cached_gpp_mask);