Messages in this thread Patch in this message | | | From | Prashanth K <> | Subject | usb: gadget: f_uac2: Fix incorrect increment of bNumEndpoints | Date | Wed, 23 Nov 2022 14:18:10 +0530 |
| |
Currently connect/disconnect of USB cable calls afunc_bind and eventually increments the bNumEndpoints. And performing multiple plugin/plugout will incorrectly increment bNumEndpoints on the next plug-in leading to invalid configuration of descriptor and hence enumeration failure.
Fix this by resetting the value of bNumEndpoints to 1 on every afunc_bind call.
Signed-off-by: Pratham Pratap <quic_ppratap@quicinc.com> Signed-off-by: Prashanth K <quic_prashk@quicinc.com> --- drivers/usb/gadget/function/f_uac2.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/usb/gadget/function/f_uac2.c b/drivers/usb/gadget/function/f_uac2.c index 08726e4..0219cd7 100644 --- a/drivers/usb/gadget/function/f_uac2.c +++ b/drivers/usb/gadget/function/f_uac2.c @@ -1142,6 +1142,7 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn) } std_as_out_if0_desc.bInterfaceNumber = ret; std_as_out_if1_desc.bInterfaceNumber = ret; + std_as_out_if1_desc.bNumEndpoints = 1; uac2->as_out_intf = ret; uac2->as_out_alt = 0; -- 2.7.4
| |