Commit 96baa4c3 authored by Linus Walleij's avatar Linus Walleij Committed by Wolfgang Denk
Browse files

serial: pl01x: drain PL01x FIFO before baudrate change



Not draining the FIFO and waiting for the UART to be non-busy
before changing baudrate results in crap characters on the
console, so let's wait for the FIFO to drain and the last
character to be clocked out before we do that.
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 349e83f0
......@@ -194,7 +194,17 @@ int serial_tstc (void)
void serial_setbrg (void)
{
struct pl01x_regs *regs = pl01x_get_regs(CONSOLE_PORT);
baudrate = gd->baudrate;
/*
* Flush FIFO and wait for non-busy before changing baudrate to avoid
* crap in console
*/
while (!(readl(&regs->fr) & UART_PL01x_FR_TXFE))
WATCHDOG_RESET();
while (readl(&regs->fr) & UART_PL01x_FR_BUSY)
WATCHDOG_RESET();
serial_init();
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment