On Thu, Mar 5, 2015 at 11:17 PM, Yunzhi Li <lyz@xxxxxxxxxxxxxx> wrote: > When dwc2 controller detects a disconnect interrupt, > dwc2_hcd_disconnect() should be called immediately to do clean-up > jobs and set port_connect_status_change flag to notify usb hub > driver disconnect status. > > Signed-off-by: Yunzhi Li <lyz@xxxxxxxxxxxxxx> > --- > drivers/usb/dwc2/core_intr.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c > index 02e3e2d..6cf0478 100644 > --- a/drivers/usb/dwc2/core_intr.c > +++ b/drivers/usb/dwc2/core_intr.c > @@ -377,6 +377,9 @@ static void dwc2_handle_disconnect_intr(struct dwc2_hsotg *hsotg) > dwc2_is_host_mode(hsotg) ? "Host" : "Device", > dwc2_op_state_str(hsotg)); > > + if (hsotg->op_state == OTG_STATE_A_HOST) > + dwc2_hcd_disconnect(hsotg); > + > /* Change to L3 (OFF) state */ > hsotg->lx_state = DWC2_L3; > > -- > 2.0.0 Tested-by: Vincent Palatin <vpalatin@xxxxxxxxxxxx> It's fixing real issues on my DWC2-based system where the USB device lock was staying busy for minutes after a hub disconnection. -- Vincent -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html