[PATCH v4 RESEND 6/7] gpio/omap: fix incorrect update to context.irqenable1
Kevin Hilman
khilman at ti.com
Thu Mar 22 19:09:07 EDT 2012
Tarun Kanti DebBarma <tarun.kanti at ti.com> writes:
> In _enable_gpio_irqbank() when bank->regs->set_irqenable is TRUE,
> 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 avoid overwriting it with
> gpio_mask at the end of the function. Instead, update irqenable1
> appropriately by OR'ing with gpio_mask.
> For the case where bank->regs->set_irqenable is FALSE, irqenable1
> can be directly overwritten with 'l' which holds correct computed
> value.
>
> 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 similar change for _disable_gpio_irqbank().
>
> Signed-off-by: Tarun Kanti DebBarma <tarun.kanti at ti.com>
> Reviewed-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
> ---
> Updated change log as per Kevin's suggestion.
Thanks for the update. I've queued the updated version of this series,
and sent pull request to Grant.
Thanks Tarun,
Kevin
More information about the linux-arm-kernel
mailing list