【Linux】在Xilinx平台上实现UVC Gadget(2)- 解决dwc3驱动bug

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

一、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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值