Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
i2c: designware: Disable TX_EMPTY irq while waiting for block length …
…byte commit e8183fa upstream. During SMBus block data read process, we have seen high interrupt rate because of TX_EMPTY irq status while waiting for block length byte (the first data byte after the address phase). The interrupt handler does not do anything because the internal state is kept as STATUS_WRITE_IN_PROGRESS. Hence, we should disable TX_EMPTY IRQ until I2C DesignWare receives first data byte from I2C device, then re-enable it to resume SMBus transaction. It takes 0.789 ms for host to receive data length from slave. Without the patch, i2c_dw_isr() is called 99 times by TX_EMPTY interrupt. And it is none after applying the patch. Cc: [email protected] Co-developed-by: Chuong Tran <[email protected]> Signed-off-by: Chuong Tran <[email protected]> Signed-off-by: Tam Nguyen <[email protected]> Acked-by: Jarkko Nikula <[email protected]> Reviewed-by: Serge Semin <[email protected]> Signed-off-by: Wolfram Sang <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
- Loading branch information