From: Simon Goldschmidt Date: Mon, 3 Dec 2018 20:55:33 +0000 (+0100) Subject: Revert "serial: ns16550: fix debug uart putc called before init" X-Git-Tag: baikal/mips/sdk5.9~1237 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=a29143a341;p=uboot.git Revert "serial: ns16550: fix debug uart putc called before init" This reverts commit c0009e32e93ee6af9a1a74a39d053bc005c3e95a since it does not seem to work at least on rk3399. The Rockchip Technical Reference Manual (TRM) for the rk3399 says the baud rate prescaler register is readable only when USR[0] is zero. Since this bit is defined as "reserved" in the socfpga cylcone5 TRM, let's rather drop this than making the ns16550 debug uart more platform specific. Reported-by: Roosen Henri Signed-off-by: Simon Goldschmidt Reviewed-by: Philipp Tomsich Reviewed-by: Kever Yang 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); }