The T2 Clear-On-Read (COR) feature works by clearing all pending
irqs when the ISR register is read. It should be needless to say
that this feature isn't compatible with shared interrupts, unless
the value of the ISR is read only once for each interrupt.
It is therefor safe to assume that COR is not used - because if a
driver uses the feature, that driver will clear the interrupts
belonging to other drivers.
This patch removes the redundant clearing and restoring of the COR
bit in REG_PWR_SIH_CTRL.
Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
{
int ret = IRQ_NONE;
u8 val;
- u8 sih_ctrl;
-
- /* save previous value of SIH_CTRL and disable clear_on_read */
- twl4030_i2c_read_u8(TWL4030_MODULE_INT, &sih_ctrl, REG_PWR_SIH_CTRL);
- twl4030_i2c_write_u8(TWL4030_MODULE_INT, (sih_ctrl & ~COR),
- REG_PWR_SIH_CTRL);
if (twl4030_i2c_read_u8(TWL4030_MODULE_INT, &val, REG_PWR_ISR1) < 0) {
printk(KERN_ERR "twl4030_usb: i2c read failed,"
ret = IRQ_HANDLED;
done:
- /* restore previous value of SIH_CTRL */
- twl4030_i2c_write_u8(TWL4030_MODULE_INT, sih_ctrl, REG_PWR_SIH_CTRL);
return ret;
}