diff options
Diffstat (limited to 'drivers/usb/serial/ftdi_sio.c')
| -rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index c45f9c0a1b3..9ced8937a8f 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c @@ -904,6 +904,7 @@ static struct usb_device_id id_table_combined [] = {  	{ USB_DEVICE(FTDI_VID, FTDI_LUMEL_PD12_PID) },  	/* Crucible Devices */  	{ USB_DEVICE(FTDI_VID, FTDI_CT_COMET_PID) }, +	{ USB_DEVICE(FTDI_VID, FTDI_Z3X_PID) },  	{ }					/* Terminating entry */  }; @@ -1966,8 +1967,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;  | 
