Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
[pandora-kernel.git] / arch / powerpc / sysdev / qe_lib / qe_ic.c
index 541ba98..832d692 100644 (file)
@@ -189,15 +189,20 @@ static inline void qe_ic_write(volatile __be32  __iomem * base, unsigned int reg
 
 static inline struct qe_ic *qe_ic_from_irq(unsigned int virq)
 {
-       return irq_to_desc(virq)->chip_data;
+       return irq_get_chip_data(virq);
+}
+
+static inline struct qe_ic *qe_ic_from_irq_data(struct irq_data *d)
+{
+       return irq_data_get_irq_chip_data(d);
 }
 
 #define virq_to_hw(virq)       ((unsigned int)irq_map[virq].hwirq)
 
-static void qe_ic_unmask_irq(unsigned int virq)
+static void qe_ic_unmask_irq(struct irq_data *d)
 {
-       struct qe_ic *qe_ic = qe_ic_from_irq(virq);
-       unsigned int src = virq_to_hw(virq);
+       struct qe_ic *qe_ic = qe_ic_from_irq_data(d);
+       unsigned int src = virq_to_hw(d->irq);
        unsigned long flags;
        u32 temp;
 
@@ -210,10 +215,10 @@ static void qe_ic_unmask_irq(unsigned int virq)
        raw_spin_unlock_irqrestore(&qe_ic_lock, flags);
 }
 
-static void qe_ic_mask_irq(unsigned int virq)
+static void qe_ic_mask_irq(struct irq_data *d)
 {
-       struct qe_ic *qe_ic = qe_ic_from_irq(virq);
-       unsigned int src = virq_to_hw(virq);
+       struct qe_ic *qe_ic = qe_ic_from_irq_data(d);
+       unsigned int src = virq_to_hw(d->irq);
        unsigned long flags;
        u32 temp;
 
@@ -238,9 +243,9 @@ static void qe_ic_mask_irq(unsigned int virq)
 
 static struct irq_chip qe_ic_irq_chip = {
        .name = "QEIC",
-       .unmask = qe_ic_unmask_irq,
-       .mask = qe_ic_mask_irq,
-       .mask_ack = qe_ic_mask_irq,
+       .irq_unmask = qe_ic_unmask_irq,
+       .irq_mask = qe_ic_mask_irq,
+       .irq_mask_ack = qe_ic_mask_irq,
 };
 
 static int qe_ic_host_match(struct irq_host *h, struct device_node *node)
@@ -262,10 +267,10 @@ static int qe_ic_host_map(struct irq_host *h, unsigned int virq,
        /* Default chip */
        chip = &qe_ic->hc_irq;
 
-       set_irq_chip_data(virq, qe_ic);
-       irq_to_desc(virq)->status |= IRQ_LEVEL;
+       irq_set_chip_data(virq, qe_ic);
+       irq_set_status_flags(virq, IRQ_LEVEL);
 
-       set_irq_chip_and_handler(virq, chip, handle_level_irq);
+       irq_set_chip_and_handler(virq, chip, handle_level_irq);
 
        return 0;
 }
@@ -381,13 +386,13 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags,
 
        qe_ic_write(qe_ic->regs, QEIC_CICR, temp);
 
-       set_irq_data(qe_ic->virq_low, qe_ic);
-       set_irq_chained_handler(qe_ic->virq_low, low_handler);
+       irq_set_handler_data(qe_ic->virq_low, qe_ic);
+       irq_set_chained_handler(qe_ic->virq_low, low_handler);
 
        if (qe_ic->virq_high != NO_IRQ &&
                        qe_ic->virq_high != qe_ic->virq_low) {
-               set_irq_data(qe_ic->virq_high, qe_ic);
-               set_irq_chained_handler(qe_ic->virq_high, high_handler);
+               irq_set_handler_data(qe_ic->virq_high, qe_ic);
+               irq_set_chained_handler(qe_ic->virq_high, high_handler);
        }
 }