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

Commit f26788da authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman
Browse files

USB: serial: refactor generic close



Export usb_serial_generic_close so that drivers can easily kill the read
and write urb and make sure that the write fifo is reset.

Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent ec3ee508
Loading
Loading
Loading
Loading
+2 −5
Original line number Original line Diff line number Diff line
@@ -355,14 +355,11 @@ static void ark3116_close(struct usb_serial_port *port)
		/* deactivate interrupts */
		/* deactivate interrupts */
		ark3116_write_reg(serial, UART_IER, 0);
		ark3116_write_reg(serial, UART_IER, 0);


		/* shutdown any bulk reads that might be going on */
		usb_serial_generic_close(port);
		if (serial->num_bulk_out)
			usb_kill_urb(port->write_urb);
		if (serial->num_bulk_in)
			usb_kill_urb(port->read_urb);
		if (serial->num_interrupt_in)
		if (serial->num_interrupt_in)
			usb_kill_urb(port->interrupt_in_urb);
			usb_kill_urb(port->interrupt_in_urb);
	}
	}

}
}


static int ark3116_open(struct tty_struct *tty, struct usb_serial_port *port)
static int ark3116_open(struct tty_struct *tty, struct usb_serial_port *port)
+1 −3
Original line number Original line Diff line number Diff line
@@ -246,9 +246,7 @@ static void belkin_sa_close(struct usb_serial_port *port)
{
{
	dbg("%s port %d", __func__, port->number);
	dbg("%s port %d", __func__, port->number);


	/* shutdown our bulk reads and writes */
	usb_serial_generic_close(port);
	usb_kill_urb(port->write_urb);
	usb_kill_urb(port->read_urb);
	usb_kill_urb(port->interrupt_in_urb);
	usb_kill_urb(port->interrupt_in_urb);
} /* belkin_sa_close */
} /* belkin_sa_close */


+1 −4
Original line number Original line Diff line number Diff line
@@ -305,10 +305,7 @@ static void ch341_close(struct usb_serial_port *port)
{
{
	dbg("%s - port %d", __func__, port->number);
	dbg("%s - port %d", __func__, port->number);


	/* shutdown our urbs */
	usb_serial_generic_close(port);
	dbg("%s - shutting down urbs", __func__);
	usb_kill_urb(port->write_urb);
	usb_kill_urb(port->read_urb);
	usb_kill_urb(port->interrupt_in_urb);
	usb_kill_urb(port->interrupt_in_urb);
}
}


+1 −4
Original line number Original line Diff line number Diff line
@@ -422,10 +422,7 @@ static void cp210x_close(struct usb_serial_port *port)
{
{
	dbg("%s - port %d", __func__, port->number);
	dbg("%s - port %d", __func__, port->number);


	/* shutdown our urbs */
	usb_serial_generic_close(port);
	dbg("%s - shutting down urbs", __func__);
	usb_kill_urb(port->write_urb);
	usb_kill_urb(port->read_urb);


	mutex_lock(&port->serial->disc_mutex);
	mutex_lock(&port->serial->disc_mutex);
	if (!port->serial->disconnected)
	if (!port->serial->disconnected)
+1 −0
Original line number Original line Diff line number Diff line
@@ -179,6 +179,7 @@ void usb_serial_generic_close(struct usb_serial_port *port)
	dbg("%s - port %d", __func__, port->number);
	dbg("%s - port %d", __func__, port->number);
	generic_cleanup(port);
	generic_cleanup(port);
}
}
EXPORT_SYMBOL_GPL(usb_serial_generic_close);


static int usb_serial_multi_urb_write(struct tty_struct *tty,
static int usb_serial_multi_urb_write(struct tty_struct *tty,
	struct usb_serial_port *port, const unsigned char *buf, int count)
	struct usb_serial_port *port, const unsigned char *buf, int count)
Loading