diff options
author | Baohong Liu <baohong.liu@intel.com> | 2016-08-10 13:14:40 -0700 |
---|---|---|
committer | Andrew Boie <andrew.p.boie@intel.com> | 2016-08-11 03:11:50 +0000 |
commit | d38208b977733d0f8f1c6e9fe5dd7a5a6890c85c (patch) | |
tree | c5162d13e86e3759b5cc8b0731d293f77861962a /ext | |
parent | 0ec26e9587995ebf8124eb47bd3e2526fab0c5ea (diff) |
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>
Diffstat (limited to 'ext')
-rw-r--r-- | ext/hal/qmsi/drivers/qm_i2c.c | 3 | ||||
-rw-r--r-- | ext/hal/qmsi/drivers/sensor/qm_ss_i2c.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/ext/hal/qmsi/drivers/qm_i2c.c b/ext/hal/qmsi/drivers/qm_i2c.c index 5e8871f8c..b3e7ad81d 100644 --- a/ext/hal/qmsi/drivers/qm_i2c.c +++ b/ext/hal/qmsi/drivers/qm_i2c.c @@ -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); diff --git a/ext/hal/qmsi/drivers/sensor/qm_ss_i2c.c b/ext/hal/qmsi/drivers/sensor/qm_ss_i2c.c index 03ef2878f..3bb66f5ab 100644 --- a/ext/hal/qmsi/drivers/sensor/qm_ss_i2c.c +++ b/ext/hal/qmsi/drivers/sensor/qm_ss_i2c.c @@ -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); |