[SERIAL] SUNHV: Fix jerky console on LDOM guests.
David S. Miller [Tue, 17 Jul 2007 00:05:11 +0000 (17:05 -0700)]
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>

drivers/serial/sunhv.c

index 17bcca5..d82be42 100644 (file)
@@ -258,17 +258,7 @@ static void sunhv_stop_tx(struct uart_port *port)
 /* port->lock held by caller.  */
 static void sunhv_start_tx(struct uart_port *port)
 {
-       struct circ_buf *xmit = &port->info->xmit;
-
-       while (!uart_circ_empty(xmit)) {
-               long status = sun4v_con_putchar(xmit->buf[xmit->tail]);
-
-               if (status != HV_EOK)
-                       break;
-
-               xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
-               port->icount.tx++;
-       }
+       transmit_chars(port);
 }
 
 /* port->lock is not held.  */