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: I311aba843e28685e8cca36733ac3f1e09b70d900
Signed-off-by: Baohong Liu <baohong.liu@intel.com>
This commit is contained in:
Baohong Liu 2016-08-10 13:14:40 -07:00 committed by Andrew Boie
commit d38208b977
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 * complete
*/ */
controller->ic_intr_mask &= 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) { if (transfer->stop) {
controller_disable(i2c); 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( QM_SS_REG_AUX_NAND(
(controller + QM_SS_I2C_INTR_MASK), (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) { if (i2c_transfer[i2c]->stop) {
controller_disable(i2c); controller_disable(i2c);