[PATCH v3 13/13] gpio/omap: fix incorrect update to context.irqenable1
Santosh Shilimkar
santosh.shilimkar at ti.com
Wed Mar 7 07:09:04 EST 2012
On Wednesday 07 March 2012 12:16 PM, Tarun Kanti DebBarma wrote:
> In _enable_gpio_irqbank() when bank->regs->set_irqenable is valid,
> gpio_mask can be directly set by writing to set_irqenable register
> without overwriting current value. In order to ensure the same is
> stored in context.irqenable1, we must read from regs->irqenable
> instead of overwriting it with gpio_mask.
> The overwriting makes sense only in the second case where irqenable
> is explicitly read and updated with new gpio_mask before writing it
> back. However, for consistency reading regs->irqenable into the
> bank->context.irqenable1 takes care of both the scenarios.
>
> if (bank->regs->set_irqenable) {
> reg += bank->regs->set_irqenable;
> l = gpio_mask;
> } else {
> reg += bank->regs->irqenable;
> l = __raw_readl(reg);
> if (bank->regs->irqenable_inv)
> l &= ~gpio_mask;
> else
> l |= gpio_mask;
> }
>
> Make the same change for _disable_gpio_irqbank().
>
> Signed-off-by: Tarun Kanti DebBarma <tarun.kanti at ti.com>
> ---
OK.
Reviewed-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
Regards
Santosh
More information about the linux-arm-kernel
mailing list