summary refs log tree commit diff
path: root/drivers/usb/dwc3/core.h
diff options
context:
space:
mode:
authorWesley Cheng <quic_wcheng@quicinc.com>2022-03-15 18:13:58 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-03-18 12:58:46 +0100
commit0066472de157439d58454f4a55786f1045ea5681 (patch)
treee5adba36d25b6f4c7726a1a3a65422aa97a15381 /drivers/usb/dwc3/core.h
parent5cd601e699f798dcf3017632f33c6bff4eeee2f8 (diff)
downloadlinux-0066472de157439d58454f4a55786f1045ea5681.tar.gz
usb: dwc3: Issue core soft reset before enabling run/stop
It is recommended by the Synopsis databook to issue a DCTL.CSftReset
when reconnecting from a device-initiated disconnect routine.  This
resolves issues with enumeration during fast composition switching
cases, which result in an unknown device on the host.

Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Link: https://lore.kernel.org/r/20220316011358.3057-1-quic_wcheng@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/dwc3/core.h')
-rw-r--r--drivers/usb/dwc3/core.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index e9b1e9b8f1f3..5c9d467195a6 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -1532,6 +1532,8 @@ bool dwc3_has_imod(struct dwc3 *dwc);
 int dwc3_event_buffers_setup(struct dwc3 *dwc);
 void dwc3_event_buffers_cleanup(struct dwc3 *dwc);
 
+int dwc3_core_soft_reset(struct dwc3 *dwc);
+
 #if IS_ENABLED(CONFIG_USB_DWC3_HOST) || IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE)
 int dwc3_host_init(struct dwc3 *dwc);
 void dwc3_host_exit(struct dwc3 *dwc);