diff options
Diffstat (limited to 'drivers/tty/serial/sh-sci.c')
| -rw-r--r-- | drivers/tty/serial/sh-sci.c | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index c073aa7001c4..e1179e74a2b8 100644 --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -870,9 +870,16 @@ static void sci_receive_chars(struct uart_port *port)  				tty_insert_flip_char(tport, c, TTY_NORMAL);  		} else {  			for (i = 0; i < count; i++) { -				char c = serial_port_in(port, SCxRDR); - -				status = serial_port_in(port, SCxSR); +				char c; + +				if (port->type == PORT_SCIF || +				    port->type == PORT_HSCIF) { +					status = serial_port_in(port, SCxSR); +					c = serial_port_in(port, SCxRDR); +				} else { +					c = serial_port_in(port, SCxRDR); +					status = serial_port_in(port, SCxSR); +				}  				if (uart_handle_sysrq_char(port, c)) {  					count--; i--;  					continue;  | 
