Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99ee7b5f authored by Sonic Zhang's avatar Sonic Zhang Committed by Bryan Wu
Browse files

[Blackfin] serial driver: Fix bug serial driver in DMA mode spams history to...

[Blackfin] serial driver: Fix bug serial driver in DMA mode spams history to console on shell restart

http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=2920


Fix by increasing buffer tail immediately before starting tx dma.

Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
Signed-off-by: default avatarBryan Wu <bryan.wu@analog.com>
parent 75b780bd
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -411,6 +411,10 @@ static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart)
	set_dma_x_count(uart->tx_dma_channel, uart->tx_count);
	set_dma_x_modify(uart->tx_dma_channel, 1);
	enable_dma(uart->tx_dma_channel);

	xmit->tail = (xmit->tail + uart->tx_count) & (UART_XMIT_SIZE - 1);
	uart->port.icount.tx += uart->tx_count;

#ifdef CONFIG_BF54x
	UART_SET_IER(uart, ETBEI);
#else
@@ -502,9 +506,6 @@ static irqreturn_t bfin_serial_dma_tx_int(int irq, void *dev_id)
		ier &= ~ETBEI;
		UART_PUT_IER(uart, ier);
#endif
		xmit->tail = (xmit->tail+uart->tx_count) &(UART_XMIT_SIZE -1);
		uart->port.icount.tx+=uart->tx_count;

		if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
			uart_write_wakeup(&uart->port);