aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Chavent <Paul.Chavent@onera.fr>2013-09-16 08:40:59 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-26 09:45:40 -0700
commitd14654dff7a3520b5220367b848732a0a8ccdabe (patch)
tree8755189e966805eb41254e110cff3fcb9c7ec763
parentUSB: correct the usb_disconnect() comment about usb_bus_list_lock (diff)
downloadlinux-dev-d14654dff7a3520b5220367b848732a0a8ccdabe.tar.xz
linux-dev-d14654dff7a3520b5220367b848732a0a8ccdabe.zip
USB: serial: call handle_dcd_change in ftdi driver.
When the device receive a DCD status change, forward the signal to the USB serial system. This way, we can detect, for instance, PPS pulses. Signed-off-by: Paul Chavent <paul.chavent@onera.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/serial/ftdi_sio.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index c45f9c0a1b34..f53298d32099 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1966,8 +1966,16 @@ static int ftdi_process_packet(struct usb_serial_port *port,
port->icount.dsr++;
if (diff_status & FTDI_RS0_RI)
port->icount.rng++;
- if (diff_status & FTDI_RS0_RLSD)
+ if (diff_status & FTDI_RS0_RLSD) {
+ struct tty_struct *tty;
+
port->icount.dcd++;
+ tty = tty_port_tty_get(&port->port);
+ if (tty)
+ usb_serial_handle_dcd_change(port, tty,
+ status & FTDI_RS0_RLSD);
+ tty_kref_put(tty);
+ }
wake_up_interruptible(&port->port.delta_msr_wait);
priv->prev_status = status;