Skip to content

Commit 347f3c8

Browse files
committed
stm32h7:Enable IDEL INT only if DMA in use
1 parent 78e1190 commit 347f3c8

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

arch/arm/src/stm32h7/stm32_serial.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,9 +1561,14 @@ static inline void up_setusartint(struct up_dev_s *priv, uint16_t ie)
15611561
cr = up_serialin(priv, STM32_USART_CR1_OFFSET);
15621562
cr &= ~(USART_CR1_USED_INTS);
15631563
cr |= (ie & (USART_CR1_USED_INTS));
1564+
15641565
#ifdef SERIAL_HAVE_RXDMA
1565-
cr |= USART_CR1_IDLEIE;
1566+
if (priv->rxdma != 0)
1567+
{
1568+
cr |= USART_CR1_IDLEIE;
1569+
}
15661570
#endif
1571+
15671572
up_serialout(priv, STM32_USART_CR1_OFFSET, cr);
15681573

15691574
cr = up_serialin(priv, STM32_USART_CR3_OFFSET);
@@ -2142,7 +2147,8 @@ static int up_setup(struct uart_dev_s *dev)
21422147
*/
21432148

21442149
regval = up_serialin(priv, STM32_USART_CR1_OFFSET);
2145-
regval &= ~(USART_CR1_TE | USART_CR1_RE | USART_CR1_ALLINTS);
2150+
regval &= ~(USART_CR1_TE | USART_CR1_RE | USART_CR1_IDLEIE |
2151+
USART_CR1_ALLINTS);
21462152

21472153
up_serialout(priv, STM32_USART_CR1_OFFSET, regval);
21482154

@@ -2172,7 +2178,10 @@ static int up_setup(struct uart_dev_s *dev)
21722178
regval = up_serialin(priv, STM32_USART_CR1_OFFSET);
21732179
regval |= (USART_CR1_UE | USART_CR1_TE | USART_CR1_RE);
21742180
#ifdef SERIAL_HAVE_RXDMA
2175-
regval |= USART_CR1_IDLEIE;
2181+
if (priv->rxdma != 0)
2182+
{
2183+
regval |= USART_CR1_IDLEIE;
2184+
}
21762185
#endif
21772186

21782187
regval |= USART_CR1_FIFOEN;
@@ -2523,10 +2532,7 @@ static int up_interrupt(int irq, void *context, FAR void *arg)
25232532
if ((priv->sr & USART_ISR_IDLE) != 0)
25242533
{
25252534
up_serialout(priv, STM32_USART_ICR_OFFSET, USART_ICR_IDLECF);
2526-
if (priv->rxdma != 0)
2527-
{
2528-
up_dma_rxcallback(priv->rxdma, 0, priv);
2529-
}
2535+
up_dma_rxcallback(priv->rxdma, 0, priv);
25302536
}
25312537
#endif
25322538

0 commit comments

Comments
 (0)