]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/plat-spear/shirq.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / arm / plat-spear / shirq.c
index 2172d6946aea45e0301959416b4919d29248a49c..78189035e7f109202272419bee7d1169b1e38c0f 100644 (file)
 struct spear_shirq *shirq;
 static DEFINE_SPINLOCK(lock);
 
-static void shirq_irq_mask(unsigned irq)
+static void shirq_irq_mask(struct irq_data *d)
 {
-       struct spear_shirq *shirq = get_irq_chip_data(irq);
-       u32 val, id = irq - shirq->dev_config[0].virq;
+       struct spear_shirq *shirq = irq_data_get_irq_chip_data(d);
+       u32 val, id = d->irq - shirq->dev_config[0].virq;
        unsigned long flags;
 
        if ((shirq->regs.enb_reg == -1) || shirq->dev_config[id].enb_mask == -1)
@@ -39,10 +39,10 @@ static void shirq_irq_mask(unsigned irq)
        spin_unlock_irqrestore(&lock, flags);
 }
 
-static void shirq_irq_unmask(unsigned irq)
+static void shirq_irq_unmask(struct irq_data *d)
 {
-       struct spear_shirq *shirq = get_irq_chip_data(irq);
-       u32 val, id = irq - shirq->dev_config[0].virq;
+       struct spear_shirq *shirq = irq_data_get_irq_chip_data(d);
+       u32 val, id = d->irq - shirq->dev_config[0].virq;
        unsigned long flags;
 
        if ((shirq->regs.enb_reg == -1) || shirq->dev_config[id].enb_mask == -1)
@@ -60,9 +60,9 @@ static void shirq_irq_unmask(unsigned irq)
 
 static struct irq_chip shirq_chip = {
        .name           = "spear_shirq",
-       .ack            = shirq_irq_mask,
-       .mask           = shirq_irq_mask,
-       .unmask         = shirq_irq_unmask,
+       .irq_ack        = shirq_irq_mask,
+       .irq_mask       = shirq_irq_mask,
+       .irq_unmask     = shirq_irq_unmask,
 };
 
 static void shirq_handler(unsigned irq, struct irq_desc *desc)
@@ -70,7 +70,7 @@ static void shirq_handler(unsigned irq, struct irq_desc *desc)
        u32 i, val, mask;
        struct spear_shirq *shirq = get_irq_data(irq);
 
-       desc->chip->ack(irq);
+       desc->irq_data.chip->irq_ack(&desc->irq_data);
        while ((val = readl(shirq->regs.base + shirq->regs.status_reg) &
                                shirq->regs.status_reg_mask)) {
                for (i = 0; (i < shirq->dev_count) && val; i++) {
@@ -92,7 +92,7 @@ static void shirq_handler(unsigned irq, struct irq_desc *desc)
                        writel(mask, shirq->regs.base + shirq->regs.clear_reg);
                }
        }
-       desc->chip->unmask(irq);
+       desc->irq_data.chip->irq_unmask(&desc->irq_data);
 }
 
 int spear_shirq_register(struct spear_shirq *shirq)