These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / mfd / twl6030-irq.c
index 2807e1a..5357450 100644 (file)
@@ -231,7 +231,7 @@ static irqreturn_t twl6030_irq_thread(int irq, void *data)
 
 static int twl6030_irq_set_wake(struct irq_data *d, unsigned int on)
 {
-       struct twl6030_irq *pdata = irq_get_chip_data(d->irq);
+       struct twl6030_irq *pdata = irq_data_get_irq_chip_data(d);
 
        if (on)
                atomic_inc(&pdata->wakeirqs);
@@ -352,31 +352,18 @@ static int twl6030_irq_map(struct irq_domain *d, unsigned int virq,
        irq_set_chip_and_handler(virq,  &pdata->irq_chip, handle_simple_irq);
        irq_set_nested_thread(virq, true);
        irq_set_parent(virq, pdata->twl_irq);
-
-#ifdef CONFIG_ARM
-       /*
-        * ARM requires an extra step to clear IRQ_NOREQUEST, which it
-        * sets on behalf of every irq_chip.  Also sets IRQ_NOPROBE.
-        */
-       set_irq_flags(virq, IRQF_VALID);
-#else
-       /* same effect on other architectures */
        irq_set_noprobe(virq);
-#endif
 
        return 0;
 }
 
 static void twl6030_irq_unmap(struct irq_domain *d, unsigned int virq)
 {
-#ifdef CONFIG_ARM
-       set_irq_flags(virq, 0);
-#endif
        irq_set_chip_and_handler(virq, NULL, NULL);
        irq_set_chip_data(virq, NULL);
 }
 
-static struct irq_domain_ops twl6030_irq_domain_ops = {
+static const struct irq_domain_ops twl6030_irq_domain_ops = {
        .map    = twl6030_irq_map,
        .unmap  = twl6030_irq_unmap,
        .xlate  = irq_domain_xlate_onetwocell,