@@ -943,7 +943,7 @@ static rt_err_t rt_serial_rx_enable(struct rt_device *dev,
943
943
serial -> config .rx_bufsz = RT_SERIAL_RX_MINBUFSZ ;
944
944
945
945
#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 )
947
947
serial -> config .dma_ping_bufsz = RT_SERIAL_RX_MINBUFSZ / 2 ;
948
948
rx_fifo_size = sizeof (struct rt_serial_rx_fifo ) + serial -> config .rx_bufsz + serial -> config .dma_ping_bufsz ;
949
949
#else
@@ -959,12 +959,9 @@ static rt_err_t rt_serial_rx_enable(struct rt_device *dev,
959
959
serial -> config .rx_bufsz );
960
960
961
961
#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 );
968
965
#endif
969
966
970
967
serial -> serial_rx = rx_fifo ;
@@ -1219,10 +1216,7 @@ static void _serial_rx_flush(struct rt_serial_device *serial)
1219
1216
rt_ringbuffer_reset (& rx_fifo -> rb );
1220
1217
rx_fifo -> rx_cpt_index = 0 ;
1221
1218
#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 ));
1226
1220
#endif
1227
1221
rt_spin_unlock_irqrestore (& serial -> spinlock , level );
1228
1222
}
0 commit comments