* @ctrl_req:           Request for EP0 control packets.
  * @ep0_state:          EP0 control transfers state
  * @test_mode:          USB test mode requested by the host
- * @last_rst:           Time of last reset
  * @eps:                The endpoints being supplied to the gadget framework
  * @g_using_dma:          Indicate if dma usage is enabled
  * @g_rx_fifo_sz:         Contains rx fifo size value
        struct usb_gadget gadget;
        unsigned int enabled:1;
        unsigned int connected:1;
-       unsigned long last_rst;
        struct dwc2_hsotg_ep *eps_in[MAX_EPS_CHANNELS];
        struct dwc2_hsotg_ep *eps_out[MAX_EPS_CHANNELS];
        u32 g_using_dma;
 
        /* must be at-least 3ms to allow bus to see disconnect */
        mdelay(3);
 
-       hsotg->last_rst = jiffies;
        hsotg->lx_state = DWC2_L0;
 }
 
        if (gintsts & (GINTSTS_USBRST | GINTSTS_RESETDET)) {
 
                u32 usb_status = dwc2_readl(hsotg->regs + GOTGCTL);
+               u32 connected = hsotg->connected;
 
                dev_dbg(hsotg->dev, "%s: USBRst\n", __func__);
                dev_dbg(hsotg->dev, "GNPTXSTS=%08x\n",
                /* Report disconnection if it is not already done. */
                dwc2_hsotg_disconnect(hsotg);
 
-               if (usb_status & GOTGCTL_BSESVLD) {
-                       if (time_after(jiffies, hsotg->last_rst +
-                                      msecs_to_jiffies(200))) {
-
-                               dwc2_hsotg_core_init_disconnected(hsotg, true);
-                       }
-               }
+               if (usb_status & GOTGCTL_BSESVLD && connected)
+                       dwc2_hsotg_core_init_disconnected(hsotg, true);
        }
 
        /* check both FIFOs */