On Sat, Apr 05, 2014 at 12:54:33AM +0300, Du, Wenkai wrote: > >Interrupt masking is done already after each transaction. > > At end of transfer, the code uses __i2c_dw_enable(dev, false) to disable > adapter. This function doesn't mask interrupts. There is another function > i2c_dw_disable that masks and clears interrupts. This could be used, but > that means we need to fix in 2 places: Please check i2c_dw_isr() and tell me in which code path interrupts are not getting masked. Or am I missing something fundamental here? In case of abort, we mask interrupts. Also whenever the transaction completes we mask interrupts (in i2c_dw_xfer_msg()). Only place where we didn't do that, as far as I can tell, is right after reset because of the HW default value that unmasks most of them. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html