summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2020-04-28 01:26:05 +0200
committerLinus Walleij <linus.walleij@linaro.org>2020-04-28 16:22:33 +0200
commit0cf253eed5d2bdf7bb3152457b38f39b012955f7 (patch)
tree2b94b197852fd617dbaf561300af3d302e70eab3
parentgpio: of: Build fails if CONFIG_OF_DYNAMIC enabled without CONFIG_OF_GPIO (diff)
downloadlinux-0cf253eed5d2bdf7bb3152457b38f39b012955f7.tar.xz
linux-0cf253eed5d2bdf7bb3152457b38f39b012955f7.zip
gpio: tegra: mask GPIO IRQs during IRQ shutdown
The driver currently leaves GPIO IRQs unmasked even when the GPIO IRQ client has released the GPIO IRQ. This allows the HW to raise IRQs, and SW to process them, after shutdown. Fix this by masking the IRQ when it's shut down. This is usually taken care of by the irqchip core, but since this driver has a custom irq_shutdown implementation, it must do this explicitly itself. Signed-off-by: Stephen Warren <swarren@nvidia.com> Link: https://lore.kernel.org/r/20200427232605.11608-1-swarren@wwwdotorg.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/gpio/gpio-tegra.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index acb99eff9939..86568154cdb3 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -368,6 +368,7 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
struct tegra_gpio_info *tgi = bank->tgi;
unsigned int gpio = d->hwirq;
+ tegra_gpio_irq_mask(d);
gpiochip_unlock_as_irq(&tgi->gc, gpio);
}