Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / arch / powerpc / platforms / 52xx / media5200.c
index 2bd1e6c..96f85e5 100644 (file)
@@ -56,7 +56,7 @@ static void media5200_irq_unmask(struct irq_data *d)
 
        spin_lock_irqsave(&media5200_irq.lock, flags);
        val = in_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE);
-       val |= 1 << (MEDIA5200_IRQ_SHIFT + irq_map[d->irq].hwirq);
+       val |= 1 << (MEDIA5200_IRQ_SHIFT + irqd_to_hwirq(d));
        out_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE, val);
        spin_unlock_irqrestore(&media5200_irq.lock, flags);
 }
@@ -68,7 +68,7 @@ static void media5200_irq_mask(struct irq_data *d)
 
        spin_lock_irqsave(&media5200_irq.lock, flags);
        val = in_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE);
-       val &= ~(1 << (MEDIA5200_IRQ_SHIFT + irq_map[d->irq].hwirq));
+       val &= ~(1 << (MEDIA5200_IRQ_SHIFT + irqd_to_hwirq(d)));
        out_be32(media5200_irq.regs + MEDIA5200_IRQ_ENABLE, val);
        spin_unlock_irqrestore(&media5200_irq.lock, flags);
 }
@@ -82,7 +82,7 @@ static struct irq_chip media5200_irq_chip = {
 
 void media5200_irq_cascade(unsigned int virq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = get_irq_desc_chip(desc);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        int sub_virq, val;
        u32 status, enable;
 
@@ -107,7 +107,7 @@ void media5200_irq_cascade(unsigned int virq, struct irq_desc *desc)
        /* Processing done; can reenable the cascade now */
        raw_spin_lock(&desc->lock);
        chip->irq_ack(&desc->irq_data);
-       if (!(desc->status & IRQ_DISABLED))
+       if (!irqd_irq_disabled(&desc->irq_data))
                chip->irq_unmask(&desc->irq_data);
        raw_spin_unlock(&desc->lock);
 }
@@ -115,15 +115,10 @@ void media5200_irq_cascade(unsigned int virq, struct irq_desc *desc)
 static int media5200_irq_map(struct irq_host *h, unsigned int virq,
                             irq_hw_number_t hw)
 {
-       struct irq_desc *desc = irq_to_desc(virq);
-
        pr_debug("%s: h=%p, virq=%i, hwirq=%i\n", __func__, h, virq, (int)hw);
-       set_irq_chip_data(virq, &media5200_irq);
-       set_irq_chip_and_handler(virq, &media5200_irq_chip, handle_level_irq);
-       set_irq_type(virq, IRQ_TYPE_LEVEL_LOW);
-       desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
-       desc->status |= IRQ_TYPE_LEVEL_LOW | IRQ_LEVEL;
-
+       irq_set_chip_data(virq, &media5200_irq);
+       irq_set_chip_and_handler(virq, &media5200_irq_chip, handle_level_irq);
+       irq_set_status_flags(virq, IRQ_LEVEL);
        return 0;
 }
 
@@ -187,8 +182,8 @@ static void __init media5200_init_irq(void)
 
        media5200_irq.irqhost->host_data = &media5200_irq;
 
-       set_irq_data(cascade_virq, &media5200_irq);
-       set_irq_chained_handler(cascade_virq, media5200_irq_cascade);
+       irq_set_handler_data(cascade_virq, &media5200_irq);
+       irq_set_chained_handler(cascade_virq, media5200_irq_cascade);
 
        return;