aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/sh-sci.c
diff options
context:
space:
mode:
authorJason Wessel <jason.wessel@windriver.com>2010-05-20 21:04:23 -0500
committerJason Wessel <jason.wessel@windriver.com>2010-05-20 21:04:23 -0500
commit3f255eb37e97e97dfec7cb8d4c75d543de231812 (patch)
tree09d0c3d99bef610feba8732fcd0d78b3a47e1b9e /drivers/serial/sh-sci.c
parentkgdb,8250,pl011: Return immediately from console poll (diff)
downloadlinux-dev-3f255eb37e97e97dfec7cb8d4c75d543de231812.tar.xz
linux-dev-3f255eb37e97e97dfec7cb8d4c75d543de231812.zip
sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console code
The sci_poll_get_char() needs to return immediately if there is no input from the chip to process, and must return a value of NO_POLL_CHAR. This allows kgdboc to process multiple polled devices while kgdb is active. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Acked-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/serial/sh-sci.c')
-rw-r--r--drivers/serial/sh-sci.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 8d993c4cceac..f250a610a268 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -151,7 +151,11 @@ static int sci_poll_get_char(struct uart_port *port)
handle_error(port);
continue;
}
- } while (!(status & SCxSR_RDxF(port)));
+ break;
+ } while (1);
+
+ if (!(status & SCxSR_RDxF(port)))
+ return NO_POLL_CHAR;
c = sci_in(port, SCxRDR);