aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/sunhv.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-07-16 20:05:11 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-16 20:12:00 -0400
commitf798634d806615bee27d1b83479034087a02aa0f (patch)
tree74af3b0a5469886f69dbd13b0a70cc0ca4318227 /drivers/serial/sunhv.c
parent778feeb4757daef5d7118feab2319142367910dd (diff)
[SERIAL] SUNHV: Fix jerky console on LDOM guests.
Mixing putchar() and write() hvcalls does not work %100 correctly. But we should be using write() all the time if we can, even from ->start_tx(), anyways. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/serial/sunhv.c')
-rw-r--r--drivers/serial/sunhv.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/drivers/serial/sunhv.c b/drivers/serial/sunhv.c
index 17bcca53d6a1..d82be42ff29a 100644
--- a/drivers/serial/sunhv.c
+++ b/drivers/serial/sunhv.c
@@ -258,17 +258,7 @@ static void sunhv_stop_tx(struct uart_port *port)
258/* port->lock held by caller. */ 258/* port->lock held by caller. */
259static void sunhv_start_tx(struct uart_port *port) 259static void sunhv_start_tx(struct uart_port *port)
260{ 260{
261 struct circ_buf *xmit = &port->info->xmit; 261 transmit_chars(port);
262
263 while (!uart_circ_empty(xmit)) {
264 long status = sun4v_con_putchar(xmit->buf[xmit->tail]);
265
266 if (status != HV_EOK)
267 break;
268
269 xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
270 port->icount.tx++;
271 }
272} 262}
273 263
274/* port->lock is not held. */ 264/* port->lock is not held. */