From 1628591285f266435950ad7d61276f1b03496d4a Mon Sep 17 00:00:00 2001 From: Mayank Rana Date: Thu, 16 Jul 2020 17:29:23 -0700 Subject: [PATCH] dwc3: gadget: Don't perform SET XFER resource with USB GSI endpoint By default when ep0 gets enable, current code SET XFER resource command for all USB endpoints including USB GSI endpoint. USB GSI endpoint related configuration operation performs one more time SET XFER resource which fails as USB controller is running out of XFER resource. Fix this issue by not performing SET xfer resource by default, and let USB GSI endpoint operation takes care. Change-Id: I00d296c2c0b4f72e34ae57f5c3856b3e1e89f5ce Signed-off-by: Mayank Rana --- drivers/usb/dwc3/gadget.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 858f09229239..4af2eb06722c 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -619,7 +619,11 @@ static int dwc3_gadget_start_config(struct dwc3_ep *dep) for (i = 0; i < DWC3_ENDPOINTS_NUM; i++) { struct dwc3_ep *dep = dwc->eps[i]; - if (!dep) + /* + * Don't set xfer resource with USB GSI endpoint as it is + * performed before enabling USB GSI endpoint. + */ + if (!dep || dep->gsi) continue; ret = dwc3_gadget_set_xfer_resource(dep);