diff options
author | Guochun Huang <hero.huang@rock-chips.com> | 2019-04-12 11:18:40 +0800 |
---|---|---|
committer | Guochun Huang <hero.huang@rock-chips.com> | 2019-04-12 11:18:40 +0800 |
commit | 5b99639235f57149cbbbbbd629c3af58c994e139 (patch) | |
tree | dfb11d09c9de986358d8de11d390126100e05d80 /drivers/irq/irq-gpio.c | |
parent | 314d43c94ff2a64cf69871e776754c63a9a5743a (diff) | |
parent | 0436a29d64ac791fefc764fadc7e64ba16bb6b25 (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.c | 12 |
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); } } |