aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-omap.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpio/gpio-omap.c')
-rw-r--r--drivers/gpio/gpio-omap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index bcb1061dbd6d..6c17e5812312 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -451,6 +451,7 @@ static void _enable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
451 if (bank->regs->set_irqenable) { 451 if (bank->regs->set_irqenable) {
452 reg += bank->regs->set_irqenable; 452 reg += bank->regs->set_irqenable;
453 l = gpio_mask; 453 l = gpio_mask;
454 bank->context.irqenable1 |= gpio_mask;
454 } else { 455 } else {
455 reg += bank->regs->irqenable; 456 reg += bank->regs->irqenable;
456 l = __raw_readl(reg); 457 l = __raw_readl(reg);
@@ -458,10 +459,10 @@ static void _enable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
458 l &= ~gpio_mask; 459 l &= ~gpio_mask;
459 else 460 else
460 l |= gpio_mask; 461 l |= gpio_mask;
462 bank->context.irqenable1 = l;
461 } 463 }
462 464
463 __raw_writel(l, reg); 465 __raw_writel(l, reg);
464 bank->context.irqenable1 = l;
465} 466}
466 467
467static void _disable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask) 468static void _disable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
@@ -472,6 +473,7 @@ static void _disable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
472 if (bank->regs->clr_irqenable) { 473 if (bank->regs->clr_irqenable) {
473 reg += bank->regs->clr_irqenable; 474 reg += bank->regs->clr_irqenable;
474 l = gpio_mask; 475 l = gpio_mask;
476 bank->context.irqenable1 &= ~gpio_mask;
475 } else { 477 } else {
476 reg += bank->regs->irqenable; 478 reg += bank->regs->irqenable;
477 l = __raw_readl(reg); 479 l = __raw_readl(reg);
@@ -479,10 +481,10 @@ static void _disable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
479 l |= gpio_mask; 481 l |= gpio_mask;
480 else 482 else
481 l &= ~gpio_mask; 483 l &= ~gpio_mask;
484 bank->context.irqenable1 = l;
482 } 485 }
483 486
484 __raw_writel(l, reg); 487 __raw_writel(l, reg);
485 bank->context.irqenable1 = l;
486} 488}
487 489
488static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable) 490static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable)