diff options
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/ns16550.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index f21c240e64..25b9d17243 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -272,26 +272,12 @@ static inline void _debug_uart_init(void) serial_dout(&com_port->lcr, UART_LCRVAL); } -static inline int NS16550_read_baud_divisor(struct NS16550 *com_port) -{ - int ret; - - serial_dout(&com_port->lcr, UART_LCR_BKSE | UART_LCRVAL); - ret = serial_din(&com_port->dll) & 0xff; - ret |= (serial_din(&com_port->dlm) & 0xff) << 8; - serial_dout(&com_port->lcr, UART_LCRVAL); - - return ret; -} - static inline void _debug_uart_putc(int ch) { struct NS16550 *com_port = (struct NS16550 *)CONFIG_DEBUG_UART_BASE; - while (!(serial_din(&com_port->lsr) & UART_LSR_THRE)) { - if (!NS16550_read_baud_divisor(com_port)) - return; - } + while (!(serial_din(&com_port->lsr) & UART_LSR_THRE)) + ; serial_dout(&com_port->thr, ch); } |