【Linux】在Xilinx平台上实现UVC Gadget(2)- 解决dwc3驱动bug
一、bug描述
前文详情见
【Linux】在Xilinx平台上实现UVC Gadget(1)
在usb插入电脑时,开发板会瞬间报错,报错信息如下。
经过仔细研究,dwc3驱动drivers/usb/dwc3/gadget.c存在一个bug
在usb gadget 枚举过程中,会触发不需要的假中断,为了避免这个问题,
需要清除DWC3_DCTL_KEEP_CONNECT位,禁用DWC3_GCTL_GBLHIBERNATIONEN休眠中断
[ 111.954284] ------------[ cut here ]------------
[ 111.958916] WARNING: CPU: 0 PID: 1095 at drivers/usb/dwc3/gadget.c:3305 dwc3_stop_active_transfer.part.0+0xc4/0xd0
[ 111.969247] Modules linked in: vivid v4l2_tpg cec g_webcam g_ffs zocl(O) dmaproxy(O) al5e(O) al5d(O) allegro(O) mali(O) xlnx_vcu regmap_mmio uio_pdrv_genirq [last unloaded: zocl]
[ 111.985179] CPU: 0 PID: 1095 Comm: irq/92-dwc3 Tainted: G O 5.10.0-xilinx-v2021.1 #1
[ 111.994210] Hardware name: ZynqMP ZCU104 RevC (DT)
[ 111.998987] pstate: 60000085 (nZCv daIf -PAN -UAO -TCO BTYPE=--)
[ 112.004985

本文介绍了在Xilinx平台上实现UVCGadget时遇到的一个dwc3驱动bug,并提供了详细的解决方案。该bug导致USB插入时开发板出现错误,通过修改gadget驱动源码清除特定位来禁用不必要的中断。
- 解决dwc3驱动bug&spm=1001.2101.3001.5002&articleId=127944649&d=1&t=3&u=bc2b117a7fb149269eb6cb83f6e94b92)
3305

被折叠的 条评论
为什么被折叠?



