WORKAROUND: usb: gadget: composite: Set usb_req len with additional bytes 39/314839/5 accepted/tizen_unified_toolchain accepted/tizen_unified_x_asan accepted/tizen/unified/toolchain/20240812.132224 accepted/tizen/unified/x/20240723.043551 accepted/tizen/unified/x/asan/20240813.230510
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 22 Jul 2024 03:58:56 +0000 (12:58 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 22 Jul 2024 07:05:19 +0000 (16:05 +0900)
commitffd01ec09d31d260c632160dbd0aa1d5841cd3e0
tree5b9c423d43235c9fc59b51ddfead9dd15f05547e
parent17d98cf7b8a6cb92bf7bbc9dd4e4eb2db002d427
WORKAROUND: usb: gadget: composite: Set usb_req len with additional bytes

If the usb gadget of cdns3 drd device is used, set ep0 usb_req
length with additional 2 bytes for zlp with exactly multiple of
max packet length of the ep0 to resolve the cdns3 specific ep0
enumeration issue.

The cdns3 has a known issue that zlp is missed when its usb_req
size is exactly multiple of max packet length, 64 and it is not
handled.

In the visionfive2 board with cdns3 in its usb c port, board serial
number is exactly 31 characters and including null character,
utf-8 string length is 64, so the cdns3 zlp issue is occured
during usb sdb enumeration for iSerial usb string descriptor.

If it is fixed from cdns3 driver, this workaround can be reverted.

Change-Id: I751c334d03bcf8fe94aa9f4b0367070bfc47c539
Ref: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1289171/am6411-no-usb-gadget-zlp-for-cdns3_ep0_run_transfer
Suggested-by: Dongwoo Lee <dwoo08.lee@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
drivers/usb/gadget/composite.c