usb: dwc3: gadget: change detemination method of connect status
[firefly-linux-kernel-4.4.55.git] / drivers / usb / dwc3 / gadget.c
index 08f87831ae18331b05a0c5b34310f9c9ea2dfdcc..dc1d36028ab091e64d048b2cc244c16884cafcb3 100644 (file)
@@ -2179,6 +2179,9 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
                return;
 
        if (epnum == 0 || epnum == 1) {
+               if (!dwc->connected &&
+                   event->endpoint_event == DWC3_DEPEVT_XFERCOMPLETE)
+                       dwc->connected = true;
                dwc3_ep0_interrupt(dwc, event);
                return;
        }
@@ -2398,8 +2401,6 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc)
 {
        u32                     reg;
 
-       dwc->connected = true;
-
        /*
         * WORKAROUND: DWC3 revisions <1.88a have an issue which
         * would cause a missing Disconnect Event if there's a