diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 3e0ee5742042..7ff9c0b4bbe4 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1308,6 +1308,9 @@ static int dwc3_core_init_mode(struct dwc3 *dwc) } ret = dwc3_drd_init(dwc); if (ret) { + if (dwc->en_runtime) + dwc3_gadget_exit(dwc); + if (ret != -EPROBE_DEFER) dev_err(dev, "failed to initialize dual-role\n"); return ret;