Mask the GPIO interrupt while its type is being changed, just in case
it can prevent a spurious interrupt.

Signed-off-by: Doug Berger <open...@gmail.com>
---
 drivers/gpio/gpio-brcmstb.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c
index 0418cb266586..e2fff559c1ca 100644
--- a/drivers/gpio/gpio-brcmstb.c
+++ b/drivers/gpio/gpio-brcmstb.c
@@ -363,7 +363,9 @@ static int brcmstb_gpio_irq_setup(struct platform_device 
*pdev,
        bank->irq_chip.irq_set_type = brcmstb_gpio_irq_set_type;
 
        /* Ensures that all non-wakeup IRQs are disabled at suspend */
-       bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND;
+       /* and that interrupts are masked when changing their type  */
+       bank->irq_chip.flags = IRQCHIP_MASK_ON_SUSPEND |
+                              IRQCHIP_SET_TYPE_MASKED;
 
        if (IS_ENABLED(CONFIG_PM_SLEEP) && !priv->parent_wake_irq &&
                        of_property_read_bool(np, "wakeup-source")) {
-- 
2.14.1

Reply via email to