gpio: support threaded interrupts in irqchip helpers
authorLinus Walleij <linus.walleij@linaro.org>
Wed, 9 Apr 2014 11:34:39 +0000 (13:34 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 28 Apr 2014 19:35:07 +0000 (12:35 -0700)
commit1c8732bb0355b929b09173464cdca7df4d516f89
treeaff50774b50c3f4567be23f9d6deeb187ab4a62f
parentd1db0eea852497762cab43b905b879dfcd3b8987
gpio: support threaded interrupts in irqchip helpers

Some off-chip GPIO expanders need to be communicated by I2C or
SPI traffic, but may still support IRQs. By the sleeping nature
of such buses, such IRQ handlers need to be threaded. Support
such handlers in the gpiochip irqchip helpers by flagging IRQs
as threaded if the .can_sleep property of the gpiochip is
true.

Helpfully deny registration of chained IRQ handlers if the
.can_sleep property is set, as such chips will invariably need
a nested handler rather than a chained handler.

Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c
include/linux/gpio/driver.h