diff --git a/drivers/usb/gadget/function/f_cdev.c b/drivers/usb/gadget/function/f_cdev.c index 2b52f86a6072..406faecb555a 100644 --- a/drivers/usb/gadget/function/f_cdev.c +++ b/drivers/usb/gadget/function/f_cdev.c @@ -583,6 +583,8 @@ static void usb_cser_disable(struct usb_function *f) "port(%s) deactivated\n", port->name); usb_cser_disconnect(port); + port->func_is_suspended = false; + port->func_wakeup_allowed = false; port->func_wakeup_pending = false; usb_ep_disable(port->port_usb.notify); port->port_usb.notify->driver_data = NULL; diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c index 27200bca1ba5..e368bcae0bb7 100644 --- a/drivers/usb/gadget/function/f_gsi.c +++ b/drivers/usb/gadget/function/f_gsi.c @@ -2596,6 +2596,11 @@ static void gsi_disable(struct usb_function *f) /* send 0 len pkt to qti/qbi/gps to notify state change */ gsi_ctrl_send_cpkt_tomodem(gsi, NULL, 0); gsi->c_port.notify_req_queued = false; + + gsi->func_is_suspended = false; + gsi->func_wakeup_allowed = false; + gsi->func_wakeup_pending = false; + /* Disable Data Path - only if it was initialized already (alt=1) */ if (!gsi->data_interface_up) { log_event_dbg("%s: data intf is closed", __func__);