Loading drivers/usb/gadget/function/f_cdev.c +18 −0 Original line number Diff line number Diff line Loading @@ -1353,6 +1353,9 @@ static int f_cdev_tiocmget(struct f_cdev *port) if (cser->serial_state & TIOCM_DSR) result |= TIOCM_DSR; if (cser->serial_state & TIOCM_CTS) result |= TIOCM_CTS; return result; } Loading Loading @@ -1399,6 +1402,18 @@ static int f_cdev_tiocmset(struct f_cdev *port, if (clear & TIOCM_DSR) cser->serial_state &= ~TIOCM_DSR; if (set & TIOCM_CTS) { if (cser->send_break) { cser->serial_state |= TIOCM_CTS; status = cser->send_break(cser, 0); } } if (clear & TIOCM_CTS) { if (cser->send_break) { cser->serial_state &= ~TIOCM_CTS; status = cser->send_break(cser, 1); } } return status; } Loading Loading @@ -1527,8 +1542,10 @@ int usb_cser_connect(struct f_cdev *port) void usb_cser_disconnect(struct f_cdev *port) { struct cserial *cser; unsigned long flags; cser = &port->port_usb; usb_cser_stop_io(port); /* lower DTR to modem */ Loading @@ -1536,6 +1553,7 @@ void usb_cser_disconnect(struct f_cdev *port) spin_lock_irqsave(&port->port_lock, flags); port->is_connected = false; cser->notify_modem = NULL; port->nbytes_from_host = port->nbytes_to_host = 0; port->nbytes_to_port_bridge = 0; spin_unlock_irqrestore(&port->port_lock, flags); Loading Loading
drivers/usb/gadget/function/f_cdev.c +18 −0 Original line number Diff line number Diff line Loading @@ -1353,6 +1353,9 @@ static int f_cdev_tiocmget(struct f_cdev *port) if (cser->serial_state & TIOCM_DSR) result |= TIOCM_DSR; if (cser->serial_state & TIOCM_CTS) result |= TIOCM_CTS; return result; } Loading Loading @@ -1399,6 +1402,18 @@ static int f_cdev_tiocmset(struct f_cdev *port, if (clear & TIOCM_DSR) cser->serial_state &= ~TIOCM_DSR; if (set & TIOCM_CTS) { if (cser->send_break) { cser->serial_state |= TIOCM_CTS; status = cser->send_break(cser, 0); } } if (clear & TIOCM_CTS) { if (cser->send_break) { cser->serial_state &= ~TIOCM_CTS; status = cser->send_break(cser, 1); } } return status; } Loading Loading @@ -1527,8 +1542,10 @@ int usb_cser_connect(struct f_cdev *port) void usb_cser_disconnect(struct f_cdev *port) { struct cserial *cser; unsigned long flags; cser = &port->port_usb; usb_cser_stop_io(port); /* lower DTR to modem */ Loading @@ -1536,6 +1553,7 @@ void usb_cser_disconnect(struct f_cdev *port) spin_lock_irqsave(&port->port_lock, flags); port->is_connected = false; cser->notify_modem = NULL; port->nbytes_from_host = port->nbytes_to_host = 0; port->nbytes_to_port_bridge = 0; spin_unlock_irqrestore(&port->port_lock, flags); Loading