[POWERPC] Add an optional device_node pointer to the irq_host
[powerpc.git] / arch / powerpc / sysdev / mv64x60_pic.c
index 01d3162..a145bfd 100644 (file)
@@ -204,7 +204,7 @@ static struct irq_chip mv64x60_chip_gpp = {
 
 static int mv64x60_host_match(struct irq_host *h, struct device_node *np)
 {
-       return mv64x60_irq_host->host_data == np;
+       return h->of_node == np;
 }
 
 static struct irq_chip *mv64x60_chips[] = {
@@ -253,14 +253,12 @@ void __init mv64x60_init_irq(void)
        np = of_find_compatible_node(NULL, NULL, "marvell,mv64x60-pic");
        reg = of_get_property(np, "reg", &size);
        paddr = of_translate_address(np, reg);
-       of_node_put(np);
        mv64x60_irq_reg_base = ioremap(paddr, reg[1]);
 
-       mv64x60_irq_host = irq_alloc_host(IRQ_HOST_MAP_LINEAR, MV64x60_NUM_IRQS,
+       mv64x60_irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR,
+                                         MV64x60_NUM_IRQS,
                                          &mv64x60_host_ops, MV64x60_NUM_IRQS);
 
-       mv64x60_irq_host->host_data = np;
-
        spin_lock_irqsave(&mv64x60_lock, flags);
        out_le32(mv64x60_gpp_reg_base + MV64x60_GPP_INTR_MASK,
                 mv64x60_cached_gpp_mask);