diff options
Diffstat (limited to 'drivers/usb/serial/generic.c')
| -rw-r--r-- | drivers/usb/serial/generic.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c index e6833e216fc9..e4db5ad2bc55 100644 --- a/drivers/usb/serial/generic.c +++ b/drivers/usb/serial/generic.c | |||
| @@ -479,6 +479,26 @@ int usb_serial_handle_break(struct usb_serial_port *port) | |||
| 479 | } | 479 | } |
| 480 | EXPORT_SYMBOL_GPL(usb_serial_handle_break); | 480 | EXPORT_SYMBOL_GPL(usb_serial_handle_break); |
| 481 | 481 | ||
| 482 | /** | ||
| 483 | * usb_serial_handle_dcd_change - handle a change of carrier detect state | ||
| 484 | * @port: usb_serial_port structure for the open port | ||
| 485 | * @tty: tty_struct structure for the port | ||
| 486 | * @status: new carrier detect status, nonzero if active | ||
| 487 | */ | ||
| 488 | void usb_serial_handle_dcd_change(struct usb_serial_port *usb_port, | ||
| 489 | struct tty_struct *tty, unsigned int status) | ||
| 490 | { | ||
| 491 | struct tty_port *port = &usb_port->port; | ||
| 492 | |||
| 493 | dbg("%s - port %d, status %d", __func__, usb_port->number, status); | ||
| 494 | |||
| 495 | if (status) | ||
| 496 | wake_up_interruptible(&port->open_wait); | ||
| 497 | else if (tty && !C_CLOCAL(tty)) | ||
| 498 | tty_hangup(tty); | ||
| 499 | } | ||
| 500 | EXPORT_SYMBOL_GPL(usb_serial_handle_dcd_change); | ||
| 501 | |||
| 482 | int usb_serial_generic_resume(struct usb_serial *serial) | 502 | int usb_serial_generic_resume(struct usb_serial *serial) |
| 483 | { | 503 | { |
| 484 | struct usb_serial_port *port; | 504 | struct usb_serial_port *port; |
