|
@@ -501,7 +501,11 @@ static int pl011_dma_tx_refill(struct uart_amba_port *uap)
|
|
memcpy(&dmatx->buf[0], &xmit->buf[xmit->tail], count);
|
|
memcpy(&dmatx->buf[0], &xmit->buf[xmit->tail], count);
|
|
else {
|
|
else {
|
|
size_t first = UART_XMIT_SIZE - xmit->tail;
|
|
size_t first = UART_XMIT_SIZE - xmit->tail;
|
|
- size_t second = xmit->head;
|
|
|
|
|
|
+ size_t second;
|
|
|
|
+
|
|
|
|
+ if (first > count)
|
|
|
|
+ first = count;
|
|
|
|
+ second = count - first;
|
|
|
|
|
|
memcpy(&dmatx->buf[0], &xmit->buf[xmit->tail], first);
|
|
memcpy(&dmatx->buf[0], &xmit->buf[xmit->tail], first);
|
|
if (second)
|
|
if (second)
|