gpio/mxc: mask gpio interrupts in suspend
authorUlises Brindis <ubrindis56@gmail.com>
Wed, 5 Aug 2015 17:23:07 +0000 (10:23 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 13 Aug 2015 12:46:56 +0000 (14:46 +0200)
commit952cfbd38e263ae81fbb4e575fe40d220891d68b
tree05e81b80d1d35096d57647699c30afe4e74cc38f
parent627c89b4d7c0a916b7702e23ded6e063dcb14ad5
gpio/mxc: mask gpio interrupts in suspend

Currently in the FSL platform all GPIO interrupts in a bank are muxed
into two GPIO lines to the GPC interrupt controller. In each GPIO bank
GPIOs 0-15 are OR'ed into one GPC interrupt controller interrupt and 16-31
are OR'ed into another. With the current code, if any of the 0-15 or
16-31 interrupts are marked as wakeup capable, all interrupts belonging
to that sub-bank (either 0-15 or 16-31) will wake up the device. This is
because interrupts are only being masked at the interrupt controller
and not at the GPIO controller.

This patch allows masking of GPIO interrupts at the GPIO controller during
suspend if they have not been labeled wakeup capable. This patch uses
preexisting IRQCHIP_MASK_ON_SUSPEND flag while initializing the GPIO
interrupts to get the desired behavior.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: linux-gpio@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Ulises Brindis <ubrindis56@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-mxc.c