summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2011-06-14 17:53:34 +0900
committerPaul Mundt <lethal@linux-sh.org>2011-06-14 17:53:34 +0900
commit4b8c59a3d83e9cf2b65b16999a0c704fc72de056 (patch)
treeac64f3684521db41692075421a1ca040b589723a
parent72b294cf76dcd6d37891387049ddbe3c25043cb8 (diff)
downloadop-kernel-dev-4b8c59a3d83e9cf2b65b16999a0c704fc72de056.zip
op-kernel-dev-4b8c59a3d83e9cf2b65b16999a0c704fc72de056.tar.gz
serial: sh-sci: Support generic SCLSR overrun detection.
For all ports with a valid SCLSR register we can use the generic FIFO overrun detection logic. Test the validity of the SCLSR register rather than depending explicitly on port type, which can be ambiguous for the SCIFA/B types. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--drivers/tty/serial/sh-sci.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index 60027d5..8e55e0a 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -734,15 +734,11 @@ static int sci_handle_fifo_overrun(struct uart_port *port)
{
struct tty_struct *tty = port->state->port.tty;
struct sci_port *s = to_sci_port(port);
+ struct plat_sci_reg *reg;
int copied = 0;
- /*
- * XXX: Technically not limited to non-SCIFs, it's simply the
- * SCLSR check that is for the moment SCIF-specific. This
- * probably wants to be revisited for SCIFA/B as well as for
- * factoring in SCI overrun detection.
- */
- if (port->type != PORT_SCIF)
+ reg = sci_getreg(port, SCLSR);
+ if (!reg->size)
return 0;
if ((sci_in(port, SCLSR) & (1 << s->cfg->overrun_bit))) {
OpenPOWER on IntegriCloud