| Index: drivers/serial/ns16550.c
|
| diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
|
| index 7e833fde5fd52e5c14be3727be740b781baf99a4..b778babc528a8d4f252379c751d73a4fd983fe3d 100644
|
| --- a/drivers/serial/ns16550.c
|
| +++ b/drivers/serial/ns16550.c
|
| @@ -64,6 +64,28 @@ void NS16550_reinit (NS16550_t com_port, int baud_divisor)
|
| serial_out((baud_divisor >> 8) & 0xff, &com_port->dlm);
|
| serial_out(UART_LCRVAL, &com_port->lcr);
|
| }
|
| +
|
| +/* Clear the UART's RX FIFO */
|
| +
|
| +void NS16550_clear(NS16550_t com_port)
|
| +{
|
| + /* Reset RX fifo */
|
| + serial_out(UART_FCR_FIFO_EN | UART_FCR_RXSR, &com_port->fcr);
|
| +
|
| + /* Remove any pending characters */
|
| + while (NS16550_tstc(com_port))
|
| + NS16550_getc(com_port);
|
| +}
|
| +
|
| +/* Wait for the UART's output buffer and holding register to drain */
|
| +
|
| +void NS16550_drain(NS16550_t com_port)
|
| +{
|
| + /* Wait for the UART to finish sending */
|
| + while(!(serial_in(&com_port->lsr) & UART_LSR_TEMT))
|
| + udelay(100);
|
| +}
|
| +
|
| #endif /* CONFIG_NS16550_MIN_FUNCTIONS */
|
|
|
| void NS16550_putc (NS16550_t com_port, char c)
|
|
|