sh: drain and wait for early printk
Drain by waiting for all characters to be sent, and make sure to wait a little bit after setting up the baud rate. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
0fba321365
commit
4a65e3827b
|
@ -143,6 +143,7 @@ static void scif_sercon_init(char *s)
|
|||
{
|
||||
struct uart_port *port = &scif_port;
|
||||
unsigned baud = DEFAULT_BAUD;
|
||||
unsigned int status;
|
||||
char *e;
|
||||
|
||||
if (*s == ',')
|
||||
|
@ -161,12 +162,17 @@ static void scif_sercon_init(char *s)
|
|||
baud = DEFAULT_BAUD;
|
||||
}
|
||||
|
||||
do {
|
||||
status = sci_in(port, SCxSR);
|
||||
} while (!(status & SCxSR_TEND(port)));
|
||||
|
||||
sci_out(port, SCSCR, 0); /* TE=0, RE=0 */
|
||||
sci_out(port, SCSMR, 0);
|
||||
|
||||
/* Set baud rate */
|
||||
sci_out(port, SCBRR, (CONFIG_SH_PCLK_FREQ + 16 * baud) /
|
||||
(32 * baud) - 1);
|
||||
udelay((1000000+(baud-1)) / baud); /* Wait one bit interval */
|
||||
|
||||
sci_out(port, SCFCR, 12);
|
||||
sci_out(port, SCFCR, 8);
|
||||
|
|
Loading…
Reference in New Issue