提交 0a4142fb 编写于 作者: J Johan Hovold 提交者: Greg Kroah-Hartman

USB: quatech2: switch to generic get_icount implementation

Switch to the generic get_icount implementation.
Signed-off-by: NJohan Hovold <jhovold@gmail.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 6d0cad65
master alk-4.19.24 alk-4.19.30 alk-4.19.34 alk-4.19.36 alk-4.19.43 alk-4.19.48 alk-4.19.57 ck-4.19.67 ck-4.19.81 ck-4.19.91 github/fork/deepanshu1422/fix-typo-in-comment github/fork/haosdent/fix-typo linux-next v4.19.91 v4.19.90 v4.19.89 v4.19.88 v4.19.87 v4.19.86 v4.19.85 v4.19.84 v4.19.83 v4.19.82 v4.19.81 v4.19.80 v4.19.79 v4.19.78 v4.19.77 v4.19.76 v4.19.75 v4.19.74 v4.19.73 v4.19.72 v4.19.71 v4.19.70 v4.19.69 v4.19.68 v4.19.67 v4.19.66 v4.19.65 v4.19.64 v4.19.63 v4.19.62 v4.19.61 v4.19.60 v4.19.59 v4.19.58 v4.19.57 v4.19.56 v4.19.55 v4.19.54 v4.19.53 v4.19.52 v4.19.51 v4.19.50 v4.19.49 v4.19.48 v4.19.47 v4.19.46 v4.19.45 v4.19.44 v4.19.43 v4.19.42 v4.19.41 v4.19.40 v4.19.39 v4.19.38 v4.19.37 v4.19.36 v4.19.35 v4.19.34 v4.19.33 v4.19.32 v4.19.31 v4.19.30 v4.19.29 v4.19.28 v4.19.27 v4.19.26 v4.19.25 v4.19.24 v4.19.23 v4.19.22 v4.19.21 v4.19.20 v4.19.19 v4.19.18 v4.19.17 v4.19.16 v4.19.15 v4.19.14 v4.19.13 v4.19.12 v4.19.11 v4.19.10 v4.19.9 v4.19.8 v4.19.7 v4.19.6 v4.19.5 v4.19.4 v4.19.3 v4.19.2 v4.19.1 v4.19 v4.19-rc8 v4.19-rc7 v4.19-rc6 v4.19-rc5 v4.19-rc4 v4.19-rc3 v4.19-rc2 v4.19-rc1 ck-release-21 ck-release-20 ck-release-19.2 ck-release-19.1 ck-release-19 ck-release-18 ck-release-17.2 ck-release-17.1 ck-release-17 ck-release-16 ck-release-15.1 ck-release-15 ck-release-14 ck-release-13.2 ck-release-13 ck-release-12 ck-release-11 ck-release-10 ck-release-9 ck-release-7 alk-release-15 alk-release-14 alk-release-13.2 alk-release-13 alk-release-12 alk-release-11 alk-release-10 alk-release-9 alk-release-7
无相关合并请求
......@@ -128,8 +128,6 @@ struct qt2_port_private {
u8 shadowLSR;
u8 shadowMSR;
struct async_icount icount;
struct usb_serial_port *port;
};
......@@ -501,16 +499,16 @@ static int wait_modem_info(struct usb_serial_port *port, unsigned int arg)
unsigned long flags;
spin_lock_irqsave(&priv->lock, flags);
prev = priv->icount;
prev = port->icount;
spin_unlock_irqrestore(&priv->lock, flags);
while (1) {
wait_event_interruptible(port->delta_msr_wait,
(port->serial->disconnected ||
(priv->icount.rng != prev.rng) ||
(priv->icount.dsr != prev.dsr) ||
(priv->icount.dcd != prev.dcd) ||
(priv->icount.cts != prev.cts)));
(port->icount.rng != prev.rng) ||
(port->icount.dsr != prev.dsr) ||
(port->icount.dcd != prev.dcd) ||
(port->icount.cts != prev.cts)));
if (signal_pending(current))
return -ERESTARTSYS;
......@@ -519,7 +517,7 @@ static int wait_modem_info(struct usb_serial_port *port, unsigned int arg)
return -EIO;
spin_lock_irqsave(&priv->lock, flags);
cur = priv->icount;
cur = port->icount;
spin_unlock_irqrestore(&priv->lock, flags);
if ((prev.rng == cur.rng) &&
......@@ -537,28 +535,6 @@ static int wait_modem_info(struct usb_serial_port *port, unsigned int arg)
return 0;
}
static int qt2_get_icount(struct tty_struct *tty,
struct serial_icounter_struct *icount)
{
struct usb_serial_port *port = tty->driver_data;
struct qt2_port_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 qt2_ioctl(struct tty_struct *tty,
unsigned int cmd, unsigned long arg)
{
......@@ -958,16 +934,13 @@ static void qt2_update_msr(struct usb_serial_port *port, unsigned char *ch)
if (newMSR & UART_MSR_ANY_DELTA) {
/* update input line counters */
if (newMSR & UART_MSR_DCTS)
port_priv->icount.cts++;
port->icount.cts++;
if (newMSR & UART_MSR_DDSR)
port_priv->icount.dsr++;
port->icount.dsr++;
if (newMSR & UART_MSR_DDCD)
port_priv->icount.dcd++;
port->icount.dcd++;
if (newMSR & UART_MSR_TERI)
port_priv->icount.rng++;
port->icount.rng++;
wake_up_interruptible(&port->delta_msr_wait);
}
......@@ -989,7 +962,7 @@ static void qt2_update_lsr(struct usb_serial_port *port, unsigned char *ch)
port_priv->shadowLSR = newLSR;
spin_unlock_irqrestore(&port_priv->lock, flags);
icount = &port_priv->icount;
icount = &port->icount;
if (newLSR & UART_LSR_BRK_ERROR_BITS) {
......@@ -1099,7 +1072,7 @@ static struct usb_serial_driver qt2_device = {
.break_ctl = qt2_break_ctl,
.tiocmget = qt2_tiocmget,
.tiocmset = qt2_tiocmset,
.get_icount = qt2_get_icount,
.get_icount = usb_serial_generic_get_icount,
.ioctl = qt2_ioctl,
.set_termios = qt2_set_termios,
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部