USB: msm72k_udc: Clear ep descriptors upon ep disable
Function driver may use stale descriptors if the descriptors
are not cleared upon endpoint disable. For example if the gadget
is enumerated with a different speed to the previous enumeration,
function drivers use the old speed descriptors. Function drivers
also use old interface descriptors when a new composition is
selected.
CRs-fixed: 347400
Change-Id: Ic507529c98d3ab262d86e8b5d316081547124cb9
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
diff --git a/drivers/usb/gadget/msm72k_udc.c b/drivers/usb/gadget/msm72k_udc.c
index e0fc12c..0921b4f 100644
--- a/drivers/usb/gadget/msm72k_udc.c
+++ b/drivers/usb/gadget/msm72k_udc.c
@@ -2023,6 +2023,11 @@
usb_ept_enable(ept, 0, 0);
flush_endpoint(ept);
+ /*
+ * Clear descriptors here. Otherwise previous descriptors
+ * will be used by function drivers upon next enumeration.
+ */
+ _ep->desc = NULL;
return 0;
}