瀏覽代碼

cdc: Fix autoflush for FIFO < MPS

Tomas Rezucha 3 年之前
父節點
當前提交
603effbb77
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/class/cdc/cdc_device.c

+ 1 - 1
src/class/cdc/cdc_device.c

@@ -171,7 +171,7 @@ uint32_t tud_cdc_n_write(uint8_t itf, void const* buffer, uint32_t bufsize)
   uint16_t ret = tu_fifo_write_n(&p_cdc->tx_ff, buffer, (uint16_t) bufsize);
 
   // flush if queue more than packet size
-  if ( tu_fifo_count(&p_cdc->tx_ff) >= BULK_PACKET_SIZE )
+  if ( (tu_fifo_count(&p_cdc->tx_ff) >= BULK_PACKET_SIZE) || ((CFG_TUD_CDC_TX_BUFSIZE < BULK_PACKET_SIZE) && tu_fifo_full(&p_cdc->tx_ff)) )
   {
     tud_cdc_n_write_flush(itf);
   }