This is an automated email from the ASF dual-hosted git repository. pkarashchenko pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit def7a34733f3c59b4a7b068a6cba3a2d9b03a44d Author: David Sidrane <[email protected]> AuthorDate: Wed Oct 25 03:34:58 2023 -0700 s32k1xx:lpi2c DMA transaction only need the status conditioned With DMA enabled on some I2C channels but not all the Non DMA channels were failing. The cause was condition the status with only the enabled interrupts on non DMA chennels. This conditioning needs to only happen in DMA enabled channels --- arch/arm/src/s32k1xx/s32k1xx_lpi2c.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/s32k1xx/s32k1xx_lpi2c.c b/arch/arm/src/s32k1xx/s32k1xx_lpi2c.c index cc43ef356d..48f5079b17 100644 --- a/arch/arm/src/s32k1xx/s32k1xx_lpi2c.c +++ b/arch/arm/src/s32k1xx/s32k1xx_lpi2c.c @@ -1207,12 +1207,12 @@ static int s32k1xx_lpi2c_isr_process(struct s32k1xx_lpi2c_priv_s *priv) #ifdef CONFIG_S32K1XX_LPI2C_DMA uint32_t current_status = status; - /* Condition the status with only the enabled interrupts */ - - status &= s32k1xx_lpi2c_getenabledints(priv); - if (priv->rxdma != NULL || priv->txdma != NULL) { + /* Condition the status with only the enabled interrupts */ + + status &= s32k1xx_lpi2c_getenabledints(priv); + /* Is there an Error condition */ if (current_status & LPI2C_MSR_LIMITED_ERROR_MASK)
