Switch to the generic get_icount implementation.

Signed-off-by: Johan Hovold <jhov...@gmail.com>
---
 drivers/usb/serial/ark3116.c | 49 +++++++++++++-------------------------------
 1 file changed, 14 insertions(+), 35 deletions(-)

diff --git a/drivers/usb/serial/ark3116.c b/drivers/usb/serial/ark3116.c
index 4188faf..8e869b5 100644
--- a/drivers/usb/serial/ark3116.c
+++ b/drivers/usb/serial/ark3116.c
@@ -63,7 +63,6 @@ static int is_irda(struct usb_serial *serial)
 
 struct ark3116_private {
        wait_queue_head_t       delta_msr_wait;
-       struct async_icount     icount;
        int                     irda;   /* 1 for irda device */
 
        /* protects hw register updates */
@@ -406,26 +405,6 @@ err_out:
        return result;
 }
 
-static int ark3116_get_icount(struct tty_struct *tty,
-                                       struct serial_icounter_struct *icount)
-{
-       struct usb_serial_port *port = tty->driver_data;
-       struct ark3116_private *priv = usb_get_serial_port_data(port);
-       struct async_icount cnow = priv->icount;
-       icount->cts = cnow.cts;
-       icount->dsr = cnow.dsr;
-       icount->rng = cnow.rng;
-       icount->dcd = cnow.dcd;
-       icount->rx = cnow.rx;
-       icount->tx = cnow.tx;
-       icount->frame = cnow.frame;
-       icount->overrun = cnow.overrun;
-       icount->parity = cnow.parity;
-       icount->brk = cnow.brk;
-       icount->buf_overrun = cnow.buf_overrun;
-       return 0;
-}
-
 static int ark3116_ioctl(struct tty_struct *tty,
                         unsigned int cmd, unsigned long arg)
 {
@@ -454,7 +433,7 @@ static int ark3116_ioctl(struct tty_struct *tty,
                return 0;
        case TIOCMIWAIT:
                for (;;) {
-                       struct async_icount prev = priv->icount;
+                       struct async_icount prev = port->icount;
                        interruptible_sleep_on(&priv->delta_msr_wait);
                        /* see if a signal did it */
                        if (signal_pending(current))
@@ -464,13 +443,13 @@ static int ark3116_ioctl(struct tty_struct *tty,
                                return -EIO;
 
                        if ((arg & TIOCM_RNG &&
-                            (prev.rng != priv->icount.rng)) ||
+                            (prev.rng != port->icount.rng)) ||
                            (arg & TIOCM_DSR &&
-                            (prev.dsr != priv->icount.dsr)) ||
+                            (prev.dsr != port->icount.dsr)) ||
                            (arg & TIOCM_CD  &&
-                            (prev.dcd != priv->icount.dcd)) ||
+                            (prev.dcd != port->icount.dcd)) ||
                            (arg & TIOCM_CTS &&
-                            (prev.cts != priv->icount.cts)))
+                            (prev.cts != port->icount.cts)))
                                return 0;
                }
                break;
@@ -571,13 +550,13 @@ static void ark3116_update_msr(struct usb_serial_port 
*port, __u8 msr)
        if (msr & UART_MSR_ANY_DELTA) {
                /* update input line counters */
                if (msr & UART_MSR_DCTS)
-                       priv->icount.cts++;
+                       port->icount.cts++;
                if (msr & UART_MSR_DDSR)
-                       priv->icount.dsr++;
+                       port->icount.dsr++;
                if (msr & UART_MSR_DDCD)
-                       priv->icount.dcd++;
+                       port->icount.dcd++;
                if (msr & UART_MSR_TERI)
-                       priv->icount.rng++;
+                       port->icount.rng++;
                wake_up_interruptible(&priv->delta_msr_wait);
        }
 }
@@ -594,13 +573,13 @@ static void ark3116_update_lsr(struct usb_serial_port 
*port, __u8 lsr)
 
        if (lsr&UART_LSR_BRK_ERROR_BITS) {
                if (lsr & UART_LSR_BI)
-                       priv->icount.brk++;
+                       port->icount.brk++;
                if (lsr & UART_LSR_FE)
-                       priv->icount.frame++;
+                       port->icount.frame++;
                if (lsr & UART_LSR_PE)
-                       priv->icount.parity++;
+                       port->icount.parity++;
                if (lsr & UART_LSR_OE)
-                       priv->icount.overrun++;
+                       port->icount.overrun++;
        }
 }
 
@@ -718,7 +697,7 @@ static struct usb_serial_driver ark3116_device = {
        .ioctl =                ark3116_ioctl,
        .tiocmget =             ark3116_tiocmget,
        .tiocmset =             ark3116_tiocmset,
-       .get_icount =           ark3116_get_icount,
+       .get_icount =           usb_serial_generic_get_icount,
        .open =                 ark3116_open,
        .close =                ark3116_close,
        .break_ctl =            ark3116_break_ctl,
-- 
1.8.1.5

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to