summaryrefslogtreecommitdiff
path: root/drivers/gpio/gpio-lp873x.c
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>2019-02-08 13:40:46 +0300
committerLinus Walleij <linus.walleij@linaro.org>2019-02-13 12:36:54 +0300
commitc2df3de0d07e1d678f8269b195030391b647c1b6 (patch)
tree08b34f024ece1fda72d311d82db120ede10f60cb /drivers/gpio/gpio-lp873x.c
parentdac7da986ba39e9ff6b078ae15b561c4929edec1 (diff)
downloadlinux-c2df3de0d07e1d678f8269b195030391b647c1b6.tar.xz
gpio: zynq: properly support runtime PM for GPIO used as interrupts
The Zynq GPIO driver currently implements runtime PM by: - Enabling runtime PM support in ->probe() and letting the runtime PM reference counter drop to zero at the end of ->probe(). - Increasing the runtime PM reference counter in ->request() and decreasing it in ->free(). However, the latter is not sufficient: when a GPIO is used as an interrupt, ->request() and ->free() are not called. Due to this, the runtime PM counter remains to zero when the only GPIOs in use are used as interrupts, causing them to simply not work. To address this problem, this commit implement the ->irq_request_resources() and ->irq_release_resources() hooks, ensuring that the runtime PM counter is properly incremented/decremented. Since we override the default hooks, we keep the existing behavior by making sure they call gpiochip_reqres_irq() / gpiochip_relres_irq() respectively. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-lp873x.c')
0 files changed, 0 insertions, 0 deletions