patch "USB: serial: ch341: fix resume after reset" added to usb-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
USB: serial: ch341: fix resume after reset
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
ce5e292828117d1b71cbd3edf9e9137cf31acd30Mon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Fri, 6 Jan 2017 19:15:14 +0100
Subject: USB: serial: ch341: fix resume after reset
Fix reset-resume handling which failed to resubmit the read and interrupt URBs, thereby leaving a port that was open before suspend in a broken state until closed and reopened.
resume")
--- drivers/usb/serial/ch341.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
drivers/usb/serial/ch341.c +13 -4
@@ -582,14 +582,23 @@ static int ch341_tiocmget(struct tty_struct *tty)static int ch341_reset_resume (struct usb_serial *serial) { -struct ch341_private *priv; - - priv =usb_get_serial_port_data (serial->port[0 ]); +struct usb_serial_port *port = serial->port[0 ]; +struct ch341_private *priv =usb_get_serial_port_data (port); +int ret;/* reconfigure ch341 serial port after bus-reset */ ch341_configure (serial->dev, priv); -return 0 ; +if (tty_port_initialized (&port->port)) { + ret =usb_submit_urb (port->interrupt_in_urb,GFP_NOIO ); +if (ret) { +dev_err (&port->dev,"failed to submit interrupt urb: %d\n" , + ret); +return ret; + } + } + +return usb_serial_generic_resume (serial); }static struct usb_serial_driver ch341_device = {
Signature · 1 line
2.11.0