mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-13 16:50:05 +00:00
[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: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
parent
75b780bd99
commit
99ee7b5f3a
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user