TTY: switch tty_flip_buffer_push
[firefly-linux-kernel-4.4.55.git] / drivers / usb / serial / io_edgeport.c
index 5acc0d13864a400344a012400f20bc989fa23574..b00e5cbf741f16b63071c8273c7f69eaa279ca6d 100644 (file)
 #include "io_ionsp.h"          /* info for the iosp messages */
 #include "io_16654.h"          /* 16654 UART defines */
 
-/*
- * Version Information
- */
-#define DRIVER_VERSION "v2.7"
 #define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com> and David Iacovelli"
 #define DRIVER_DESC "Edgeport USB Serial Driver"
 
@@ -236,8 +232,8 @@ static void  process_rcvd_data(struct edgeport_serial *edge_serial,
                                unsigned char *buffer, __u16 bufferLength);
 static void process_rcvd_status(struct edgeport_serial *edge_serial,
                                __u8 byte2, __u8 byte3);
-static void edge_tty_recv(struct device *dev, struct tty_struct *tty,
-                               unsigned char *data, int length);
+static void edge_tty_recv(struct usb_serial_port *port, unsigned char *data,
+               int length);
 static void handle_new_msr(struct edgeport_port *edge_port, __u8 newMsr);
 static void handle_new_lsr(struct edgeport_port *edge_port, __u8 lsrData,
                                __u8 lsr, __u8 data);
@@ -1756,7 +1752,6 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial,
        struct device *dev = &edge_serial->serial->dev->dev;
        struct usb_serial_port *port;
        struct edgeport_port *edge_port;
-       struct tty_struct *tty;
        __u16 lastBufferLength;
        __u16 rxLen;
 
@@ -1864,14 +1859,11 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial,
                                                        edge_serial->rxPort];
                                edge_port = usb_get_serial_port_data(port);
                                if (edge_port->open) {
-                                       tty = tty_port_tty_get(
-                                               &edge_port->port->port);
-                                       if (tty) {
-                                               dev_dbg(dev, "%s - Sending %d bytes to TTY for port %d\n",
-                                                       __func__, rxLen, edge_serial->rxPort);
-                                               edge_tty_recv(&edge_serial->serial->dev->dev, tty, buffer, rxLen);
-                                               tty_kref_put(tty);
-                                       }
+                                       dev_dbg(dev, "%s - Sending %d bytes to TTY for port %d\n",
+                                               __func__, rxLen,
+                                               edge_serial->rxPort);
+                                       edge_tty_recv(edge_port->port, buffer,
+                                                       rxLen);
                                        edge_port->icount.rx += rxLen;
                                }
                                buffer += rxLen;
@@ -2021,20 +2013,20 @@ static void process_rcvd_status(struct edgeport_serial *edge_serial,
  * edge_tty_recv
  *     this function passes data on to the tty flip buffer
  *****************************************************************************/
-static void edge_tty_recv(struct device *dev, struct tty_struct *tty,
-                                       unsigned char *data, int length)
+static void edge_tty_recv(struct usb_serial_port *port, unsigned char *data,
+               int length)
 {
        int cnt;
 
-       cnt = tty_insert_flip_string(tty, data, length);
+       cnt = tty_insert_flip_string(&port->port, data, length);
        if (cnt < length) {
-               dev_err(dev, "%s - dropping data, %d bytes lost\n",
+               dev_err(&port->dev, "%s - dropping data, %d bytes lost\n",
                                __func__, length - cnt);
        }
        data += cnt;
        length -= cnt;
 
-       tty_flip_buffer_push(tty);
+       tty_flip_buffer_push(&port->port);
 }
 
 
@@ -2090,14 +2082,9 @@ static void handle_new_lsr(struct edgeport_port *edge_port, __u8 lsrData,
        }
 
        /* Place LSR data byte into Rx buffer */
-       if (lsrData) {
-               struct tty_struct *tty =
-                               tty_port_tty_get(&edge_port->port->port);
-               if (tty) {
-                       edge_tty_recv(&edge_port->port->dev, tty, &data, 1);
-                       tty_kref_put(tty);
-               }
-       }
+       if (lsrData)
+               edge_tty_recv(edge_port->port, &data, 1);
+
        /* update input line counters */
        icount = &edge_port->icount;
        if (newLsr & LSR_BREAK)