lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 366/757] usb: gadget: u_serial: clear suspended flag when disconnecting
    Date
    From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

    [ Upstream commit d98ef43bfb65b5201e1afe36aaf8c4f9d71b4307 ]

    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>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/usb/gadget/function/u_serial.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
    index 127ecc2b43176..2caccbb6e0140 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 */
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:44    [W:4.031 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site