diff --git a/ext/hal/qmsi/drivers/qm_i2c.c b/ext/hal/qmsi/drivers/qm_i2c.c index 5e8871f8caa..b3e7ad81d2c 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 03ef2878f5e..3bb66f5ab3d 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);