OSDN Git Service

mfd: tc6393xb: Consolidate chained IRQ handler install/remove
authorThomas Gleixner <tglx@linutronix.de>
Mon, 13 Jul 2015 20:44:54 +0000 (20:44 +0000)
committerLee Jones <lee.jones@linaro.org>
Tue, 11 Aug 2015 14:09:05 +0000 (15:09 +0100)
Chained irq handlers usually set up handler data as well. We now have
a function to set both under irq_desc->lock. Replace the two calls
with one.

Search and conversion was done with coccinelle.

Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/tc6393xb.c

index c108472..f74777e 100644 (file)
@@ -590,8 +590,8 @@ static void tc6393xb_attach_irq(struct platform_device *dev)
        }
 
        irq_set_irq_type(tc6393xb->irq, IRQ_TYPE_EDGE_FALLING);
-       irq_set_handler_data(tc6393xb->irq, tc6393xb);
-       irq_set_chained_handler(tc6393xb->irq, tc6393xb_irq);
+       irq_set_chained_handler_and_data(tc6393xb->irq, tc6393xb_irq,
+                                        tc6393xb);
 }
 
 static void tc6393xb_detach_irq(struct platform_device *dev)
@@ -599,8 +599,7 @@ static void tc6393xb_detach_irq(struct platform_device *dev)
        struct tc6393xb *tc6393xb = platform_get_drvdata(dev);
        unsigned int irq, irq_base;
 
-       irq_set_chained_handler(tc6393xb->irq, NULL);
-       irq_set_handler_data(tc6393xb->irq, NULL);
+       irq_set_chained_handler_and_data(tc6393xb->irq, NULL, NULL);
 
        irq_base = tc6393xb->irq_base;