aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-crystalcove.c
diff options
context:
space:
mode:
authorGrygorii Strashko <grygorii.strashko@ti.com>2015-06-11 00:01:09 +0300
committerLinus Walleij <linus.walleij@linaro.org>2015-06-16 10:57:58 +0200
commit84f28998cc96546bb0733d2c238b23f38442ed89 (patch)
treee1b3fe33b616ac79df4742769f157f04c9055a93 /drivers/gpio/gpio-crystalcove.c
parentgpio / ACPI: Return -EPROBE_DEFER if the gpiochip was not found (diff)
downloadlinux-dev-84f28998cc96546bb0733d2c238b23f38442ed89.tar.xz
linux-dev-84f28998cc96546bb0733d2c238b23f38442ed89.zip
gpio: pcf857x: handle only enabled irqs
Now pcf857x_irq() IRQ's dispatcher will try to run nested IRQ handlers for each GPIO pin which state has changed. Such IRQs are, actually, spurious and nested IRQ handlers have to be called only for IRQs wich were enabled by users. This is not critical issue - just /proc/interrupts will display counters for unused IRQS: 399: 4 0 pcf857x 0 Edge 428: 1 0 pcf857x 13 Edge 430: 1 0 pcf857x 15 Edge Hence, fix it by adding irq_enabled field in struct pcf857x to track enabled GPIO IRQs and corresponding callbacks in pcf857x_irq_chip. Similar functionality was presented in pcf857x driver, commit 21fd3cd1874a ('gpio: pcf857x: call the gpio user handler iff...') and then it was removed by commit a39294bdf4b0 ('gpio: pcf857x: Switch to use gpiolib irqchip...') Cc: Geert Uytterhoeven <geert+renesas@glider.be> Fixes: a39294bdf4b0 ('gpio: pcf857x: Switch to use gpiolib irqchip helpers') Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-crystalcove.c')
0 files changed, 0 insertions, 0 deletions