gpio: handle also nested irqchips in the chained handler set-up
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 26 Sep 2014 12:19:52 +0000 (14:19 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 26 Sep 2014 12:39:08 +0000 (14:39 +0200)
To unify how we connect cascaded IRQ chips to parent IRQs, if
NULL us passed as handler to the gpiochip_set_chained_irqchip()
function, assume the chips is nested rather than chained, and
we still get the parent set up correctly by way of this function
call.

Alter the drivers for tc3589x and stmpe to use this to set up
their chained handlers as a demonstration of the usage.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/gpio/driver.txt
drivers/gpio/gpio-stmpe.c
drivers/gpio/gpio-tc3589x.c
drivers/gpio/gpiolib.c

index 23b751a..31e0b5d 100644 (file)
@@ -124,7 +124,8 @@ symbol:
 * gpiochip_set_chained_irqchip(): sets up a chained irq handler for a
   gpio_chip from a parent IRQ and passes the struct gpio_chip* as handler
   data. (Notice handler data, since the irqchip data is likely used by the
-  parent irqchip!) This is for the chained type of chip.
+  parent irqchip!) This is for the chained type of chip. This is also used
+  to set up a nested irqchip if NULL is passed as handler.
 
 To use the helpers please keep the following in mind:
 
Simple merge
Simple merge
Simple merge