@@ -943,7 +943,7 @@ static rt_err_t rt_serial_rx_enable(struct rt_device *dev,
943943 serial -> config .rx_bufsz = RT_SERIAL_RX_MINBUFSZ ;
944944
945945#ifdef RT_SERIAL_USING_DMA
946- if (serial -> config .dma_ping_bufsz > 0 && serial -> config . dma_ping_bufsz < RT_SERIAL_RX_MINBUFSZ / 2 )
946+ if (serial -> config .dma_ping_bufsz < RT_SERIAL_RX_MINBUFSZ / 2 )
947947 serial -> config .dma_ping_bufsz = RT_SERIAL_RX_MINBUFSZ / 2 ;
948948 rx_fifo_size = sizeof (struct rt_serial_rx_fifo ) + serial -> config .rx_bufsz + serial -> config .dma_ping_bufsz ;
949949#else
@@ -959,12 +959,9 @@ static rt_err_t rt_serial_rx_enable(struct rt_device *dev,
959959 serial -> config .rx_bufsz );
960960
961961#ifdef RT_SERIAL_USING_DMA
962- if (serial -> config .dma_ping_bufsz > 0 )
963- {
964- rt_ringbuffer_init (& rx_fifo -> dma_ping_rb ,
965- (rt_uint8_t * )rx_fifo + sizeof (struct rt_serial_rx_fifo ) + serial -> config .rx_bufsz ,
966- serial -> config .dma_ping_bufsz );
967- }
962+ rt_ringbuffer_init (& rx_fifo -> dma_ping_rb ,
963+ (rt_uint8_t * )rx_fifo + sizeof (struct rt_serial_rx_fifo ) + serial -> config .rx_bufsz ,
964+ serial -> config .dma_ping_bufsz );
968965#endif
969966
970967 serial -> serial_rx = rx_fifo ;
@@ -1219,10 +1216,7 @@ static void _serial_rx_flush(struct rt_serial_device *serial)
12191216 rt_ringbuffer_reset (& rx_fifo -> rb );
12201217 rx_fifo -> rx_cpt_index = 0 ;
12211218#ifdef RT_SERIAL_USING_DMA
1222- if (serial -> config .dma_ping_bufsz > 0 )
1223- {
1224- rt_ringbuffer_reset (& rx_fifo -> dma_ping_rb );
1225- }
1219+ rt_serial_update_read_index (& rx_fifo -> dma_ping_rb , rt_ringbuffer_get_size (& rx_fifo -> dma_ping_rb ));
12261220#endif
12271221 rt_spin_unlock_irqrestore (& serial -> spinlock , level );
12281222 }
0 commit comments