From 7e57cb12f1b89ef4027ca5ce3fee3e13c5cd45dd Mon Sep 17 00:00:00 2001 From: Volker Ernst Date: Wed, 13 Oct 2010 11:03:57 +0200 Subject: [PATCH] --- yaml --- r: 213524 b: refs/heads/master c: 4e4e66029af090c98cb10fafd13e8dd5039037a9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/serial/imx.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 4d5d7b136243..e4eb9aa51404 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e5586eccc9aaf485985480e4d3049acffaa3fa90 +refs/heads/master: 4e4e66029af090c98cb10fafd13e8dd5039037a9 diff --git a/trunk/drivers/serial/imx.c b/trunk/drivers/serial/imx.c index 66ecc7ab6dab..dfcf4b1878aa 100644 --- a/trunk/drivers/serial/imx.c +++ b/trunk/drivers/serial/imx.c @@ -327,14 +327,13 @@ static inline void imx_transmit_buffer(struct imx_port *sport) { struct circ_buf *xmit = &sport->port.state->xmit; - while (!(readl(sport->port.membase + UTS) & UTS_TXFULL)) { + while (!uart_circ_empty(xmit) && + !(readl(sport->port.membase + UTS) & UTS_TXFULL)) { /* send xmit->buf[xmit->tail] * out the port here */ writel(xmit->buf[xmit->tail], sport->port.membase + URTX0); xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); sport->port.icount.tx++; - if (uart_circ_empty(xmit)) - break; } if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)