diff options
author | Jiri Slaby <jslaby@suse.cz> | 2013-01-03 09:53:03 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-16 01:21:36 -0500 |
commit | 92a19f9cec9a80ad93c06e115822deb729e2c6ad (patch) | |
tree | 80e1550ac1647a1cdf20a0b568554c0c50a63f75 /drivers/tty/serial/sunzilog.c | |
parent | 2f69335710884ae6112fc8196ebe29b5cda7b79b (diff) |
TTY: switch tty_insert_flip_char
Now, we start converting tty buffer functions to actually use
tty_port. This will allow us to get rid of the need of tty in many
call sites. Only tty_port will needed and hence no more
tty_port_tty_get in those paths.
tty_insert_flip_char is the next one to proceed. This one is used all
over the code, so the patch is huge.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/sunzilog.c')
-rw-r--r-- | drivers/tty/serial/sunzilog.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/tty/serial/sunzilog.c b/drivers/tty/serial/sunzilog.c index aef4fab957c3..4a11be3849f6 100644 --- a/drivers/tty/serial/sunzilog.c +++ b/drivers/tty/serial/sunzilog.c | |||
@@ -327,13 +327,15 @@ static struct tty_struct * | |||
327 | sunzilog_receive_chars(struct uart_sunzilog_port *up, | 327 | sunzilog_receive_chars(struct uart_sunzilog_port *up, |
328 | struct zilog_channel __iomem *channel) | 328 | struct zilog_channel __iomem *channel) |
329 | { | 329 | { |
330 | struct tty_port *port = NULL; | ||
330 | struct tty_struct *tty; | 331 | struct tty_struct *tty; |
331 | unsigned char ch, r1, flag; | 332 | unsigned char ch, r1, flag; |
332 | 333 | ||
333 | tty = NULL; | 334 | tty = NULL; |
334 | if (up->port.state != NULL && /* Unopened serial console */ | 335 | if (up->port.state != NULL) { /* Unopened serial console */ |
335 | up->port.state->port.tty != NULL) /* Keyboard || mouse */ | 336 | port = &up->port.state->port; |
336 | tty = up->port.state->port.tty; | 337 | tty = port->tty; /* mouse => tty is NULL */ |
338 | } | ||
337 | 339 | ||
338 | for (;;) { | 340 | for (;;) { |
339 | 341 | ||
@@ -366,11 +368,6 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up, | |||
366 | continue; | 368 | continue; |
367 | } | 369 | } |
368 | 370 | ||
369 | if (tty == NULL) { | ||
370 | uart_handle_sysrq_char(&up->port, ch); | ||
371 | continue; | ||
372 | } | ||
373 | |||
374 | /* A real serial line, record the character and status. */ | 371 | /* A real serial line, record the character and status. */ |
375 | flag = TTY_NORMAL; | 372 | flag = TTY_NORMAL; |
376 | up->port.icount.rx++; | 373 | up->port.icount.rx++; |
@@ -400,10 +397,10 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up, | |||
400 | 397 | ||
401 | if (up->port.ignore_status_mask == 0xff || | 398 | if (up->port.ignore_status_mask == 0xff || |
402 | (r1 & up->port.ignore_status_mask) == 0) { | 399 | (r1 & up->port.ignore_status_mask) == 0) { |
403 | tty_insert_flip_char(tty, ch, flag); | 400 | tty_insert_flip_char(port, ch, flag); |
404 | } | 401 | } |
405 | if (r1 & Rx_OVR) | 402 | if (r1 & Rx_OVR) |
406 | tty_insert_flip_char(tty, 0, TTY_OVERRUN); | 403 | tty_insert_flip_char(port, 0, TTY_OVERRUN); |
407 | } | 404 | } |
408 | 405 | ||
409 | return tty; | 406 | return tty; |