Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be6199f6 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

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

parents 4f69528a 5fa858f5
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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);