kdb
[Top] [All Lists]

[PATCH 14/37] sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console cod

To: linux-kernel@xxxxxxxxxxxxxxx
Subject: [PATCH 14/37] sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console code
From: Jason Wessel <jason.wessel@xxxxxxxxxxxxx>
Date: Wed, 23 Dec 2009 15:19:27 -0600
Cc: kgdb-bugreport@xxxxxxxxxxxxxxxxxxxxx, kdb@xxxxxxxxxxx, mingo@xxxxxxx, Jason Wessel <jason.wessel@xxxxxxxxxxxxx>, Paul Mundt <lethal@xxxxxxxxxxxx>
In-reply-to: <1261603190-5036-14-git-send-email-jason.wessel@xxxxxxxxxxxxx>
References: <1261603190-5036-1-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-2-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-3-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-4-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-5-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-6-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-7-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-8-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-9-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-10-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-11-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-12-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-13-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-14-git-send-email-jason.wessel@xxxxxxxxxxxxx>
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.

CC: Paul Mundt <lethal@xxxxxxxxxxxx>
Signed-off-by: Jason Wessel <jason.wessel@xxxxxxxxxxxxx>
---
 drivers/serial/sh-sci.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 68c7f6c..ab020eb 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -126,7 +126,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);
 
-- 
1.6.4.rc1

<Prev in Thread] Current Thread [Next in Thread>