From e29b8140d4fb02aa5868046a7d84be5ba0e9bd9a Mon Sep 17 00:00:00 2001 From: Ren Jianing Date: Fri, 4 Dec 2020 17:54:11 +0800 Subject: [PATCH] usb: gadget: f_uac: update maxpacket in function bind This patch fixes the bug of RV1126 USB crash when configed as UVC + UAC + RNDIS + ADB. If we resize txfifo before opening UAC stream, the maxpacket of epin will be the default value 1024 and txfifo will exceed the maximum limit. Fixes: e658b2131e79 ("usb: dwc3: gadget: fix tx fifos resize for disabled eps") Signed-off-by: Ren Jianing Change-Id: I1e892b11a0bdda2877d3e17148867d21cb68238c --- drivers/usb/gadget/function/f_uac1.c | 1 + drivers/usb/gadget/function/f_uac2.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c index 5b8d39793358..670b13e33b15 100644 --- a/drivers/usb/gadget/function/f_uac1.c +++ b/drivers/usb/gadget/function/f_uac1.c @@ -926,6 +926,7 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f) ep = usb_ep_autoconfig(cdev->gadget, &as_in_ep_desc); if (!ep) goto fail; + ep->maxpacket = usb_endpoint_maxp(&as_in_ep_desc); audio->in_ep = ep; audio->in_ep->desc = &as_in_ep_desc; } diff --git a/drivers/usb/gadget/function/f_uac2.c b/drivers/usb/gadget/function/f_uac2.c index 10fc737c0195..625489d2d169 100644 --- a/drivers/usb/gadget/function/f_uac2.c +++ b/drivers/usb/gadget/function/f_uac2.c @@ -809,6 +809,7 @@ afunc_bind(struct usb_configuration *cfg, struct usb_function *fn) dev_err(dev, "%s:%d Error!\n", __func__, __LINE__); return -ENODEV; } + agdev->in_ep->maxpacket = usb_endpoint_maxp(&fs_epin_desc); } agdev->in_ep_maxpsize = max_t(u16,