diff options
Diffstat (limited to 'drivers/gpio/gpio-omap.c')
-rw-r--r-- | drivers/gpio/gpio-omap.c | 6 |
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 | ||
467 | static void _disable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask) | 468 | static 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 | ||
488 | static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable) | 490 | static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable) |