summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorBaohong Liu <baohong.liu@intel.com>2016-08-10 13:14:40 -0700
committerAndrew Boie <andrew.p.boie@intel.com>2016-08-11 03:11:50 +0000
commitd38208b977733d0f8f1c6e9fe5dd7a5a6890c85c (patch)
treec5162d13e86e3759b5cc8b0731d293f77861962a /ext
parent0ec26e9587995ebf8124eb47bd3e2526fab0c5ea (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.c3
-rw-r--r--ext/hal/qmsi/drivers/sensor/qm_ss_i2c.c3
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);