aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshihiro Shimoda2020-09-09 09:01:32 +0900
committerFelipe Balbi2020-10-02 09:57:41 +0300
commitd98ef43bfb65b5201e1afe36aaf8c4f9d71b4307 (patch)
treee9500d8265192bcb97d40a6327cb0283f3e4a695
parent897b81384302bf2e1eaff008163e492dda4ceaca (diff)
usb: gadget: u_serial: clear suspended flag when disconnecting
The commit aba3a8d01d62 ("usb: gadget: u_serial: add suspend resume callbacks") set/cleared the suspended flag in USB bus suspend/resume only. But, when a USB cable is disconnected in the suspend, since some controllers will not detect USB bus resume, the suspended flag is not cleared. After that, user cannot send any data. To fix the issue, clears the suspended flag in the gserial_disconnect(). Fixes: aba3a8d01d62 ("usb: gadget: u_serial: add suspend resume callbacks") Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Tested-by: Linh Phung <linh.phung.jy@renesas.com> Tested-by: Tam Nguyen <tam.nguyen.xa@renesas.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
-rw-r--r--drivers/usb/gadget/function/u_serial.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
index 127ecc2b4317..2caccbb6e014 100644
--- a/drivers/usb/gadget/function/u_serial.c
+++ b/drivers/usb/gadget/function/u_serial.c
@@ -1391,6 +1391,7 @@ void gserial_disconnect(struct gserial *gser)
if (port->port.tty)
tty_hangup(port->port.tty);
}
+ port->suspended = false;
spin_unlock_irqrestore(&port->port_lock, flags);
/* disable endpoints, aborting down any active I/O */