sh-sci: earlyprintk zero uartclk fix
PATCH 1/1 sh-sci: earlyprintk zero uartclk fix
From: Magnus Damm <[email protected]>
Signed-off-by Magnus Damm <[email protected]>
---
drivers/serial/sh-sci.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)
drivers/serial/sh-sci.c +12 -3
@@ -902,11 +902,20 @@ static void sci_shutdown(struct uart_porstatic void sci_set_termios (struct uart_port *port,struct ktermios *termios,struct ktermios *old) { -unsigned int status, baud, smr_val; +unsigned int status, baud, smr_val, max_baud;int t =-1 ; - baud =uart_get_baud_rate (port, termios, old,0 , port->uartclk/16 ); -if (likely (baud)) +/* earlyprintk comes here early on with port->uartclk set to zero. +* the clock framework is not up and running at this point so here +* we assume that 115200 is the maximum baud rate. please note that +* the baud rate is not programmed during earlyprintk - it is assumed +* that the previous boot loader has enabled required clocks and +* setup the baud rate generator hardware for us already. +*/ + max_baud = port->uartclk ? port->uartclk /16 :115200 ; + + baud =uart_get_baud_rate (port, termios, old,0 , max_baud); +if (likely (baud && port->uartclk)) t =SCBRR_VALUE (baud, port->uartclk); do {
Paul Mundt
AppliedQuoted 7 lines · Magnus Damm
From: Magnus Damm <[email protected]>
Signed-off-by Magnus Damm <[email protected]>---
drivers/serial/sh-sci.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)
Applied.