ext: qmsi: disable tx empty interrupt at the end of rx transfer

Disable tx fifo empty interrupt at the completion of a receive
transfer. If the API caller does not send "STOP" at the end of
a receive transfer, unnecessary tx fifo empty interrupt will
come one by one endlessly.

Jira: ZEP-556

Change-Id: I54739459dfab81c28713f6a3c77789e7903bb7f9
Signed-off-by: Baohong Liu <baohong.liu@intel.com>
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
Baohong Liu 2016-08-10 13:14:40 -07:00 committed by Andrew Boie
commit 3bd79cae93
2 changed files with 4 additions and 2 deletions

View file

@ -163,7 +163,8 @@ static void qm_i2c_isr_handler(const qm_i2c_t i2c)
* complete
*/
controller->ic_intr_mask &=
~QM_I2C_IC_INTR_MASK_RX_FULL;
~(QM_I2C_IC_INTR_MASK_RX_FULL |
QM_I2C_IC_INTR_MASK_TX_EMPTY);
if (transfer->stop) {
controller_disable(i2c);

View file

@ -137,7 +137,8 @@ static void qm_ss_i2c_isr_handler(const qm_ss_i2c_t i2c)
*/
QM_SS_REG_AUX_NAND(
(controller + QM_SS_I2C_INTR_MASK),
QM_SS_I2C_INTR_MASK_RX_FULL);
(QM_SS_I2C_INTR_MASK_RX_FULL |
QM_SS_I2C_INTR_MASK_TX_EMPTY));
if (i2c_transfer[i2c]->stop) {
controller_disable(i2c);