TTY: switch tty_flip_buffer_push
[deliverable/linux.git] / drivers / tty / serial / sunzilog.c
index aef4fab957c3999287b33994014cac951de652b8..27669ff3d4463b0c023f7eb1120b8ed96792e39f 100644 (file)
@@ -323,17 +323,15 @@ static void sunzilog_kbdms_receive_chars(struct uart_sunzilog_port *up,
        }
 }
 
-static struct tty_struct *
+static struct tty_port *
 sunzilog_receive_chars(struct uart_sunzilog_port *up,
                       struct zilog_channel __iomem *channel)
 {
-       struct tty_struct *tty;
+       struct tty_port *port = NULL;
        unsigned char ch, r1, flag;
 
-       tty = NULL;
-       if (up->port.state != NULL &&           /* Unopened serial console */
-           up->port.state->port.tty != NULL)   /* Keyboard || mouse */
-               tty = up->port.state->port.tty;
+       if (up->port.state != NULL)             /* Unopened serial console */
+               port = &up->port.state->port;
 
        for (;;) {
 
@@ -366,11 +364,6 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up,
                        continue;
                }
 
-               if (tty == NULL) {
-                       uart_handle_sysrq_char(&up->port, ch);
-                       continue;
-               }
-
                /* A real serial line, record the character and status.  */
                flag = TTY_NORMAL;
                up->port.icount.rx++;
@@ -400,13 +393,13 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up,
 
                if (up->port.ignore_status_mask == 0xff ||
                    (r1 & up->port.ignore_status_mask) == 0) {
-                       tty_insert_flip_char(tty, ch, flag);
+                       tty_insert_flip_char(port, ch, flag);
                }
                if (r1 & Rx_OVR)
-                       tty_insert_flip_char(tty, 0, TTY_OVERRUN);
+                       tty_insert_flip_char(port, 0, TTY_OVERRUN);
        }
 
-       return tty;
+       return port;
 }
 
 static void sunzilog_status_handle(struct uart_sunzilog_port *up,
@@ -539,21 +532,21 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id)
        while (up) {
                struct zilog_channel __iomem *channel
                        = ZILOG_CHANNEL_FROM_PORT(&up->port);
-               struct tty_struct *tty;
+               struct tty_port *port;
                unsigned char r3;
 
                spin_lock(&up->port.lock);
                r3 = read_zsreg(channel, R3);
 
                /* Channel A */
-               tty = NULL;
+               port = NULL;
                if (r3 & (CHAEXT | CHATxIP | CHARxIP)) {
                        writeb(RES_H_IUS, &channel->control);
                        ZSDELAY();
                        ZS_WSYNC(channel);
 
                        if (r3 & CHARxIP)
-                               tty = sunzilog_receive_chars(up, channel);
+                               port = sunzilog_receive_chars(up, channel);
                        if (r3 & CHAEXT)
                                sunzilog_status_handle(up, channel);
                        if (r3 & CHATxIP)
@@ -561,22 +554,22 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id)
                }
                spin_unlock(&up->port.lock);
 
-               if (tty)
-                       tty_flip_buffer_push(tty);
+               if (port)
+                       tty_flip_buffer_push(port);
 
                /* Channel B */
                up = up->next;
                channel = ZILOG_CHANNEL_FROM_PORT(&up->port);
 
                spin_lock(&up->port.lock);
-               tty = NULL;
+               port = NULL;
                if (r3 & (CHBEXT | CHBTxIP | CHBRxIP)) {
                        writeb(RES_H_IUS, &channel->control);
                        ZSDELAY();
                        ZS_WSYNC(channel);
 
                        if (r3 & CHBRxIP)
-                               tty = sunzilog_receive_chars(up, channel);
+                               port = sunzilog_receive_chars(up, channel);
                        if (r3 & CHBEXT)
                                sunzilog_status_handle(up, channel);
                        if (r3 & CHBTxIP)
@@ -584,8 +577,8 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id)
                }
                spin_unlock(&up->port.lock);
 
-               if (tty)
-                       tty_flip_buffer_push(tty);
+               if (port)
+                       tty_flip_buffer_push(port);
 
                up = up->next;
        }
This page took 0.027438 seconds and 5 git commands to generate.