|
@@ -921,6 +921,9 @@ static void lpuart_setup_watermark(struct lpuart_port *sport)
|
|
writeb(val | UARTPFIFO_TXFE | UARTPFIFO_RXFE,
|
|
writeb(val | UARTPFIFO_TXFE | UARTPFIFO_RXFE,
|
|
sport->port.membase + UARTPFIFO);
|
|
sport->port.membase + UARTPFIFO);
|
|
|
|
|
|
|
|
+ /* explicitly clear RDRF */
|
|
|
|
+ readb(sport->port.membase + UARTSR1);
|
|
|
|
+
|
|
/* flush Tx and Rx FIFO */
|
|
/* flush Tx and Rx FIFO */
|
|
writeb(UARTCFIFO_TXFLUSH | UARTCFIFO_RXFLUSH,
|
|
writeb(UARTCFIFO_TXFLUSH | UARTCFIFO_RXFLUSH,
|
|
sport->port.membase + UARTCFIFO);
|
|
sport->port.membase + UARTCFIFO);
|
|
@@ -1076,6 +1079,8 @@ static int lpuart_startup(struct uart_port *port)
|
|
sport->txfifo_size = 0x1 << (((temp >> UARTPFIFO_TXSIZE_OFF) &
|
|
sport->txfifo_size = 0x1 << (((temp >> UARTPFIFO_TXSIZE_OFF) &
|
|
UARTPFIFO_FIFOSIZE_MASK) + 1);
|
|
UARTPFIFO_FIFOSIZE_MASK) + 1);
|
|
|
|
|
|
|
|
+ sport->port.fifosize = sport->txfifo_size;
|
|
|
|
+
|
|
sport->rxfifo_size = 0x1 << (((temp >> UARTPFIFO_RXSIZE_OFF) &
|
|
sport->rxfifo_size = 0x1 << (((temp >> UARTPFIFO_RXSIZE_OFF) &
|
|
UARTPFIFO_FIFOSIZE_MASK) + 1);
|
|
UARTPFIFO_FIFOSIZE_MASK) + 1);
|
|
|
|
|