summaryrefslogtreecommitdiff
path: root/drivers/serial/serial_sh.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/serial_sh.c')
-rw-r--r--drivers/serial/serial_sh.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c
index e4cc4ee4260..7ab62e0e90b 100644
--- a/drivers/serial/serial_sh.c
+++ b/drivers/serial/serial_sh.c
@@ -112,7 +112,16 @@ static int serial_raw_putc(struct uart_port *port, const char c)
static int serial_rx_fifo_level(struct uart_port *port)
{
- return scif_rxfill(port);
+ int ret;
+
+ ret = scif_rxfill(port);
+ if (ret)
+ return ret;
+
+ if (sci_in(port, SCxSR) & SCxSR_RDxF(port))
+ return 1;
+
+ return 0;
}
static int sh_serial_tstc_generic(struct uart_port *port)