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 bcb1061dbd6..6c17e581231 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)  	if (bank->regs->set_irqenable) {  		reg += bank->regs->set_irqenable;  		l = gpio_mask; +		bank->context.irqenable1 |= gpio_mask;  	} else {  		reg += bank->regs->irqenable;  		l = __raw_readl(reg); @@ -458,10 +459,10 @@ static void _enable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)  			l &= ~gpio_mask;  		else  			l |= gpio_mask; +		bank->context.irqenable1 = l;  	}  	__raw_writel(l, reg); -	bank->context.irqenable1 = l;  }  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)  	if (bank->regs->clr_irqenable) {  		reg += bank->regs->clr_irqenable;  		l = gpio_mask; +		bank->context.irqenable1 &= ~gpio_mask;  	} else {  		reg += bank->regs->irqenable;  		l = __raw_readl(reg); @@ -479,10 +481,10 @@ static void _disable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)  			l |= gpio_mask;  		else  			l &= ~gpio_mask; +		bank->context.irqenable1 = l;  	}  	__raw_writel(l, reg); -	bank->context.irqenable1 = l;  }  static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable)  |