summaryrefslogtreecommitdiff
path: root/drivers/serial/21285.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-05-09 23:21:59 +0100
committerRussell King <rmk@dyn-67.arm.linux.org.uk>2005-05-09 23:21:59 +0100
commit05ab3014636ff60a319d37cdf37dca594b015eec (patch)
treed9d948a5ecd5e10cd511ebca328df2ef08d5e076 /drivers/serial/21285.c
parent88d7bd8cb9eb8d64bf7997600b0d64f7834047c5 (diff)
downloadlwn-05ab3014636ff60a319d37cdf37dca594b015eec.tar.gz
lwn-05ab3014636ff60a319d37cdf37dca594b015eec.zip
[PATCH] Serial: Add uart_insert_char()
Add uart_insert_char(), which handles inserting characters into the flip buffer. This helper function handles the correct semantics for handling overrun in addition to inserting normal characters. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Diffstat (limited to 'drivers/serial/21285.c')
-rw-r--r--drivers/serial/21285.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/serial/21285.c b/drivers/serial/21285.c
index 33fbda79f350..0b10169961eb 100644
--- a/drivers/serial/21285.c
+++ b/drivers/serial/21285.c
@@ -126,18 +126,8 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r
flag = TTY_FRAME;
}
- if ((rxs & port->ignore_status_mask) == 0) {
- tty_insert_flip_char(tty, ch, flag);
- }
- if ((rxs & RXSTAT_OVERRUN) &&
- tty->flip.count < TTY_FLIPBUF_SIZE) {
- /*
- * Overrun is special, since it's reported
- * immediately, and doesn't affect the current
- * character.
- */
- tty_insert_flip_char(tty, 0, TTY_OVERRUN);
- }
+ uart_insert_char(port, rxs, RXSTAT_OVERRUN, ch, flag);
+
status = *CSR_UARTFLG;
}
tty_flip_buffer_push(tty);