From b41682e5e7dfdc90b73eb3f64451b7638ecbacde Mon Sep 17 00:00:00 2001 From: William Wu Date: Mon, 25 Jan 2021 09:51:02 +0800 Subject: [PATCH] usb: dwc3: core: do gadget exit when drd init fails during probe If it fails to do dwc3_drd_init() during probe, call the dwc3_gadget_exit() to release the gadget resource when the flag dwc->en_runtime is enabled. Signed-off-by: William Wu Change-Id: I12903841db4d83a7811b7e05d0a950932b4d3085 --- drivers/usb/dwc3/core.c | 3 +++ 1 file changed, 3 insertions(+) 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;