• Minas Harutyunyan's avatar
    usb: dwc2: Fix disable all EP's on disconnect · 4fe4f9fe
    Minas Harutyunyan authored
    Disabling all EP's allow to reset EP's to initial state.
    Introduced new function dwc2_hsotg_ep_disable_lock() which
    before calling dwc2_hsotg_ep_disable() function acquire
    hsotg->lock and release on exiting.
    From dwc2_hsotg_ep_disable() function removed acquiring
    hsotg->lock.
    In dwc2_hsotg_core_init_disconnected() function when USB
    reset interrupt asserted disabling all ep’s by
    dwc2_hsotg_ep_disable() function.
    This updates eliminating sparse imbalance warnings.
    
    Reverted changes in dwc2_hostg_disconnect() function.
    Introduced new function dwc2_hsotg_ep_disable_lock().
    Changed dwc2_hsotg_ep_ops. Now disable point to
    dwc2_hsotg_ep_disable_lock() function.
    In functions dwc2_hsotg_udc_stop() and dwc2_hsotg_suspend()
    dwc2_hsotg_ep_disable() function replaced by
    dwc2_hsotg_ep_disable_lock() function.
    In dwc2_hsotg_ep_disable() function removed acquiring
    of hsotg->lock.
    
    Fixes: dccf1bad ("usb: dwc2: Disable all EP's on disconnect")
    Signed-off-by: default avatarMinas Harutyunyan <hminas@synopsys.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    4fe4f9fe
gadget.c 135 KB