diff --git a/arch/arm/src/lm3s/lm3s_ssi.c b/arch/arm/src/lm3s/lm3s_ssi.c index a880d2b239..4370a05fe7 100755 --- a/arch/arm/src/lm3s/lm3s_ssi.c +++ b/arch/arm/src/lm3s/lm3s_ssi.c @@ -760,10 +760,16 @@ static inline struct lm32_ssidev_s *ssi_mapirq(int irq) static int ssi_interrupt(int irq, void *context) { struct lm32_ssidev_s *priv = ssi_mapirq(irq); + uint32 regval; int ntxd; DEBUGASSERT(priv != NULL); + /* Clear pending interrupts */ + + regval = ssi_getreg(priv, LM3S_SSI_RIS_OFFSET); + ssi_putreg(priv, LM3S_SSI_ICR_OFFSET, regval); + /* Handle outgoing Tx FIFO transfers */ ntxd = ssi_performtx(priv);