Merge "usb: gadget: Send BRK signal to host on flow disable ioctl"

This commit is contained in:
qctecmdr 2020-12-19 19:40:00 -08:00 • committed by Gerrit - the friendly Code Review server
commit be6199f64a

View file

@ -1382,6 +1382,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;
}
@ -1428,6 +1431,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;
}
@ -1556,8 +1571,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 */
@ -1565,6 +1582,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);