]> err.no Git - linux-2.6/blobdiff - arch/powerpc/platforms/cell/spider-pic.c
Pull battery into release branch
[linux-2.6] / arch / powerpc / platforms / cell / spider-pic.c
index 608b1ebc56b28e142a170e22eabe0c8c22a41f14..05f4b3d3d756558295a0121477da5036186b2f49 100644 (file)
@@ -213,8 +213,7 @@ static struct irq_host_ops spider_host_ops = {
        .xlate = spider_host_xlate,
 };
 
-static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc,
-                              struct pt_regs *regs)
+static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc)
 {
        struct spider_pic *pic = desc->handler_data;
        unsigned int cs, virq;
@@ -225,7 +224,7 @@ static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc,
        else
                virq = irq_linear_revmap(pic->host, cs);
        if (virq != NO_IRQ)
-               generic_handle_irq(virq, regs);
+               generic_handle_irq(virq);
        desc->chip->eoi(irq);
 }
 
@@ -244,7 +243,6 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
        int imaplen, intsize, unit;
        struct device_node *iic;
 
-#if 0 /* Enable that when we have a way to retreive the node as well */
        /* First, we check wether we have a real "interrupts" in the device
         * tree in case the device-tree is ever fixed
         */
@@ -252,30 +250,29 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
        if (of_irq_map_one(pic->of_node, 0, &oirq) == 0) {
                virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
                                             oirq.size);
-               goto bail;
+               return virq;
        }
-#endif
 
        /* Now do the horrible hacks */
-       tmp = get_property(pic->of_node, "#interrupt-cells", NULL);
+       tmp = of_get_property(pic->of_node, "#interrupt-cells", NULL);
        if (tmp == NULL)
                return NO_IRQ;
        intsize = *tmp;
-       imap = get_property(pic->of_node, "interrupt-map", &imaplen);
+       imap = of_get_property(pic->of_node, "interrupt-map", &imaplen);
        if (imap == NULL || imaplen < (intsize + 1))
                return NO_IRQ;
        iic = of_find_node_by_phandle(imap[intsize]);
        if (iic == NULL)
                return NO_IRQ;
        imap += intsize + 1;
-       tmp = get_property(iic, "#interrupt-cells", NULL);
+       tmp = of_get_property(iic, "#interrupt-cells", NULL);
        if (tmp == NULL)
                return NO_IRQ;
        intsize = *tmp;
        /* Assume unit is last entry of interrupt specifier */
        unit = imap[intsize - 1];
        /* Ok, we have a unit, now let's try to get the node */
-       tmp = get_property(iic, "ibm,interrupt-server-ranges", NULL);
+       tmp = of_get_property(iic, "ibm,interrupt-server-ranges", NULL);
        if (tmp == NULL) {
                of_node_put(iic);
                return NO_IRQ;
@@ -361,15 +358,15 @@ void __init spider_init_IRQ(void)
         */
        for (dn = NULL;
             (dn = of_find_node_by_name(dn, "interrupt-controller"));) {
-               if (device_is_compatible(dn, "CBEA,platform-spider-pic")) {
+               if (of_device_is_compatible(dn, "CBEA,platform-spider-pic")) {
                        if (of_address_to_resource(dn, 0, &r)) {
                                printk(KERN_WARNING "spider-pic: Failed\n");
                                continue;
                        }
-               } else if (device_is_compatible(dn, "sti,platform-spider-pic")
+               } else if (of_device_is_compatible(dn, "sti,platform-spider-pic")
                           && (chip < 2)) {
                        static long hard_coded_pics[] =
-                               { 0x24000008000, 0x34000008000 };
+                               { 0x24000008000ul, 0x34000008000ul};
                        r.start = hard_coded_pics[chip];
                } else
                        continue;