ソースを参照

serial: 8250_dma: don't bother DMA with small transfers

If we would like to send amount of data less than FIFO size we better would do
this via PIO mode. Otherwise the overhead could be significant.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Andy Shevchenko 10 年 前
コミット
9119fba0cf
1 ファイル変更4 行追加0 行削除
  1. 4 0
      drivers/tty/serial/8250/8250_dma.c

+ 4 - 0
drivers/tty/serial/8250/8250_dma.c

@@ -80,6 +80,10 @@ int serial8250_tx_dma(struct uart_8250_port *p)
 		return 0;
 		return 0;
 
 
 	dma->tx_size = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
 	dma->tx_size = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
+	if (dma->tx_size < p->port.fifosize) {
+		ret = -EINVAL;
+		goto err;
+	}
 
 
 	desc = dmaengine_prep_slave_single(dma->txchan,
 	desc = dmaengine_prep_slave_single(dma->txchan,
 					   dma->tx_addr + xmit->tail,
 					   dma->tx_addr + xmit->tail,