powerpc: Convert to new irq_* function names
[deliverable/linux.git] / arch / powerpc / sysdev / ipic.c
index d7b9b9c6928743a6042699991b341a5ca0c6ccbb..fa438be962b71a2519fc00ff054698226a529b75 100644 (file)
@@ -523,10 +523,10 @@ static inline struct ipic * ipic_from_irq(unsigned int virq)
 
 #define ipic_irq_to_hw(virq)   ((unsigned int)irq_map[virq].hwirq)
 
-static void ipic_unmask_irq(unsigned int virq)
+static void ipic_unmask_irq(struct irq_data *d)
 {
-       struct ipic *ipic = ipic_from_irq(virq);
-       unsigned int src = ipic_irq_to_hw(virq);
+       struct ipic *ipic = ipic_from_irq(d->irq);
+       unsigned int src = ipic_irq_to_hw(d->irq);
        unsigned long flags;
        u32 temp;
 
@@ -539,10 +539,10 @@ static void ipic_unmask_irq(unsigned int virq)
        raw_spin_unlock_irqrestore(&ipic_lock, flags);
 }
 
-static void ipic_mask_irq(unsigned int virq)
+static void ipic_mask_irq(struct irq_data *d)
 {
-       struct ipic *ipic = ipic_from_irq(virq);
-       unsigned int src = ipic_irq_to_hw(virq);
+       struct ipic *ipic = ipic_from_irq(d->irq);
+       unsigned int src = ipic_irq_to_hw(d->irq);
        unsigned long flags;
        u32 temp;
 
@@ -559,10 +559,10 @@ static void ipic_mask_irq(unsigned int virq)
        raw_spin_unlock_irqrestore(&ipic_lock, flags);
 }
 
-static void ipic_ack_irq(unsigned int virq)
+static void ipic_ack_irq(struct irq_data *d)
 {
-       struct ipic *ipic = ipic_from_irq(virq);
-       unsigned int src = ipic_irq_to_hw(virq);
+       struct ipic *ipic = ipic_from_irq(d->irq);
+       unsigned int src = ipic_irq_to_hw(d->irq);
        unsigned long flags;
        u32 temp;
 
@@ -578,10 +578,10 @@ static void ipic_ack_irq(unsigned int virq)
        raw_spin_unlock_irqrestore(&ipic_lock, flags);
 }
 
-static void ipic_mask_irq_and_ack(unsigned int virq)
+static void ipic_mask_irq_and_ack(struct irq_data *d)
 {
-       struct ipic *ipic = ipic_from_irq(virq);
-       unsigned int src = ipic_irq_to_hw(virq);
+       struct ipic *ipic = ipic_from_irq(d->irq);
+       unsigned int src = ipic_irq_to_hw(d->irq);
        unsigned long flags;
        u32 temp;
 
@@ -601,11 +601,10 @@ static void ipic_mask_irq_and_ack(unsigned int virq)
        raw_spin_unlock_irqrestore(&ipic_lock, flags);
 }
 
-static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
+static int ipic_set_irq_type(struct irq_data *d, unsigned int flow_type)
 {
-       struct ipic *ipic = ipic_from_irq(virq);
-       unsigned int src = ipic_irq_to_hw(virq);
-       struct irq_desc *desc = irq_to_desc(virq);
+       struct ipic *ipic = ipic_from_irq(d->irq);
+       unsigned int src = ipic_irq_to_hw(d->irq);
        unsigned int vold, vnew, edibit;
 
        if (flow_type == IRQ_TYPE_NONE)
@@ -623,17 +622,16 @@ static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
                printk(KERN_ERR "ipic: edge sense not supported on internal "
                                "interrupts\n");
                return -EINVAL;
+
        }
 
-       desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
-       desc->status |= flow_type & IRQ_TYPE_SENSE_MASK;
+       irqd_set_trigger_type(d, flow_type);
        if (flow_type & IRQ_TYPE_LEVEL_LOW)  {
-               desc->status |= IRQ_LEVEL;
-               desc->handle_irq = handle_level_irq;
-               desc->chip = &ipic_level_irq_chip;
+               __irq_set_handler_locked(d->irq, handle_level_irq);
+               d->chip = &ipic_level_irq_chip;
        } else {
-               desc->handle_irq = handle_edge_irq;
-               desc->chip = &ipic_edge_irq_chip;
+               __irq_set_handler_locked(d->irq, handle_edge_irq);
+               d->chip = &ipic_edge_irq_chip;
        }
 
        /* only EXT IRQ senses are programmable on ipic
@@ -655,25 +653,25 @@ static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
        }
        if (vold != vnew)
                ipic_write(ipic->regs, IPIC_SECNR, vnew);
-       return 0;
+       return IRQ_SET_MASK_OK_NOCOPY;
 }
 
 /* level interrupts and edge interrupts have different ack operations */
 static struct irq_chip ipic_level_irq_chip = {
        .name           = "IPIC",
-       .unmask         = ipic_unmask_irq,
-       .mask           = ipic_mask_irq,
-       .mask_ack       = ipic_mask_irq,
-       .set_type       = ipic_set_irq_type,
+       .irq_unmask     = ipic_unmask_irq,
+       .irq_mask       = ipic_mask_irq,
+       .irq_mask_ack   = ipic_mask_irq,
+       .irq_set_type   = ipic_set_irq_type,
 };
 
 static struct irq_chip ipic_edge_irq_chip = {
        .name           = "IPIC",
-       .unmask         = ipic_unmask_irq,
-       .mask           = ipic_mask_irq,
-       .mask_ack       = ipic_mask_irq_and_ack,
-       .ack            = ipic_ack_irq,
-       .set_type       = ipic_set_irq_type,
+       .irq_unmask     = ipic_unmask_irq,
+       .irq_mask       = ipic_mask_irq,
+       .irq_mask_ack   = ipic_mask_irq_and_ack,
+       .irq_ack        = ipic_ack_irq,
+       .irq_set_type   = ipic_set_irq_type,
 };
 
 static int ipic_host_match(struct irq_host *h, struct device_node *node)
@@ -687,11 +685,11 @@ static int ipic_host_map(struct irq_host *h, unsigned int virq,
 {
        struct ipic *ipic = h->host_data;
 
-       set_irq_chip_data(virq, ipic);
-       set_irq_chip_and_handler(virq, &ipic_level_irq_chip, handle_level_irq);
+       irq_set_chip_data(virq, ipic);
+       irq_set_chip_and_handler(virq, &ipic_level_irq_chip, handle_level_irq);
 
        /* Set default irq type */
-       set_irq_type(virq, IRQ_TYPE_NONE);
+       irq_set_irq_type(virq, IRQ_TYPE_NONE);
 
        return 0;
 }
This page took 0.029738 seconds and 5 git commands to generate.