summaryrefslogtreecommitdiff
path: root/drivers/irq/irq-gpio.c
diff options
context:
space:
mode:
authorGuochun Huang <hero.huang@rock-chips.com>2019-04-12 11:18:40 +0800
committerGuochun Huang <hero.huang@rock-chips.com>2019-04-12 11:18:40 +0800
commit5b99639235f57149cbbbbbd629c3af58c994e139 (patch)
treedfb11d09c9de986358d8de11d390126100e05d80 /drivers/irq/irq-gpio.c
parent314d43c94ff2a64cf69871e776754c63a9a5743a (diff)
parent0436a29d64ac791fefc764fadc7e64ba16bb6b25 (diff)
Merge remote-tracking branch 'remotes/rk3399/next-dev' into rk3399-pie-gms-express-baseline
Diffstat (limited to 'drivers/irq/irq-gpio.c')
-rw-r--r--drivers/irq/irq-gpio.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/irq/irq-gpio.c b/drivers/irq/irq-gpio.c
index ce88cc8f7b..3e61d188fa 100644
--- a/drivers/irq/irq-gpio.c
+++ b/drivers/irq/irq-gpio.c
@@ -276,6 +276,10 @@ static int gpio_irq_enable(int gpio_irq)
gpio_irq_unmask(bank->regbase, offset_to_bit(gpio));
+ if (bank->use_count == 0)
+ irq_handler_enable(IRQ_GPIO0 + bank->id);
+ bank->use_count++;
+
return 0;
}
@@ -293,6 +297,10 @@ static int gpio_irq_disable(int irq)
gpio_irq_mask(bank->regbase, offset_to_bit(gpio));
+ if (bank->use_count == 1)
+ irq_handler_disable(IRQ_GPIO0 + bank->id);
+ bank->use_count--;
+
return 0;
}
@@ -311,8 +319,8 @@ static int gpio_irq_init(void)
irq_install_handler(IRQ_GPIO0 + bank->id,
(interrupt_handler_t *)generic_gpio_handle_irq, NULL);
- /* default enable all gpio group interrupt */
- irq_handler_enable(IRQ_GPIO0 + bank->id);
+ /* default disable all gpio group interrupt */
+ irq_handler_disable(IRQ_GPIO0 + bank->id);
}
}