diff options
Diffstat (limited to 'drivers/serial/pxa.c')
| -rw-r--r-- | drivers/serial/pxa.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/serial/pxa.c b/drivers/serial/pxa.c index 51d8a49f4477..9dc151d8fa61 100644 --- a/drivers/serial/pxa.c +++ b/drivers/serial/pxa.c | |||
| @@ -161,20 +161,12 @@ receive_chars(struct uart_pxa_port *up, int *status, struct pt_regs *regs) | |||
| 161 | else if (*status & UART_LSR_FE) | 161 | else if (*status & UART_LSR_FE) |
| 162 | flag = TTY_FRAME; | 162 | flag = TTY_FRAME; |
| 163 | } | 163 | } |
| 164 | |||
| 164 | if (uart_handle_sysrq_char(&up->port, ch, regs)) | 165 | if (uart_handle_sysrq_char(&up->port, ch, regs)) |
| 165 | goto ignore_char; | 166 | goto ignore_char; |
| 166 | if ((*status & up->port.ignore_status_mask) == 0) { | 167 | |
| 167 | tty_insert_flip_char(tty, ch, flag); | 168 | uart_insert_char(&up->port, *status, UART_LSR_OE, ch, flag); |
| 168 | } | 169 | |
| 169 | if ((*status & UART_LSR_OE) && | ||
| 170 | tty->flip.count < TTY_FLIPBUF_SIZE) { | ||
| 171 | /* | ||
| 172 | * Overrun is special, since it's reported | ||
| 173 | * immediately, and doesn't affect the current | ||
| 174 | * character. | ||
| 175 | */ | ||
| 176 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); | ||
| 177 | } | ||
| 178 | ignore_char: | 170 | ignore_char: |
| 179 | *status = serial_in(up, UART_LSR); | 171 | *status = serial_in(up, UART_LSR); |
| 180 | } while ((*status & UART_LSR_DR) && (max_count-- > 0)); | 172 | } while ((*status & UART_LSR_DR) && (max_count-- > 0)); |
