mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
docs/zh_CN: Add dwc3.rst translation
Translate .../usb/dwc3.rst into Chinese
Update the translation through commit ecefae6db0
("docs: usb: rename files to .rst and add them to drivers-api")
Reviewed-by: Yanteng Si <siyanteng@cqsoftware.com.cn>
Signed-off-by: Kefan Bai <baikefan@leap-io-kernel.com>
Link: https://patch.msgid.link/1fd5678e36ebeb4f37e224a59136ef4f4dcc8340.1779355170.git.baikefan@leap-io-kernel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d361fb4bc2
commit
c5ae290c53
63
Documentation/translations/zh_CN/usb/dwc3.rst
Normal file
63
Documentation/translations/zh_CN/usb/dwc3.rst
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. include:: ../disclaimer-zh_CN.rst
|
||||
|
||||
:Original: Documentation/usb/dwc3.rst
|
||||
|
||||
:翻译:
|
||||
|
||||
白钶凡 Kefan Bai <baikefan@leap-io-kernel.com>
|
||||
|
||||
:校译:
|
||||
|
||||
|
||||
=========
|
||||
DWC3 驱动
|
||||
=========
|
||||
|
||||
|
||||
待办
|
||||
~~~~
|
||||
|
||||
阅读时如果想顺手认领点任务,可以从下面挑一项 :)
|
||||
|
||||
- 将中断处理程序改为每个端点各自使用线程化 IRQ
|
||||
|
||||
事实证明,有些 DWC3 命令大约需要 ``~1 ms`` 才能完成。
|
||||
当前代码会一直自旋等待命令完成,这种设计并不好。
|
||||
|
||||
实现思路:
|
||||
|
||||
- DWC 核心实现了一个按端点对中断进行解复用的 IRQ 控制器。
|
||||
中断号在探测(``probe``)阶段分配,并归属于该设备。
|
||||
如果硬件通过 ``MSI`` 为每个端点提供独立中断,
|
||||
那么这个“虚拟”IRQ 控制器就可以被真实的端点中断取代。
|
||||
|
||||
- 在调用 ``usb_ep_enable()`` 时请求并分配中断资源,
|
||||
在调用 ``usb_ep_disable()`` 时释放中断资源。
|
||||
最坏情况下需要 32 个中断,最少是 ``ep0/1`` 的两个中断。
|
||||
- ``dwc3_send_gadget_ep_cmd()`` 将在 ``wait_for_completion_timeout()``
|
||||
中休眠,直到命令完成。
|
||||
- 中断处理程序分为以下几个部分:
|
||||
|
||||
- 设备级主中断处理程序
|
||||
遍历每个事件,并对其调用 ``generic_handle_irq()``。
|
||||
从 ``generic_handle_irq()`` 返回后,确认事件计数器,使中断最终消失。
|
||||
|
||||
- 设备级线程化处理程序
|
||||
无。
|
||||
|
||||
- 端点中断的主处理程序
|
||||
读取事件并尽量处理它。凡是需要睡眠的操作都交给线程处理。
|
||||
事件保存在每个端点的数据结构中。
|
||||
还要注意,一旦把某项工作交给线程处理,
|
||||
就不要再在主处理程序里处理它,
|
||||
以免出现优先级反转之类的问题。
|
||||
|
||||
- 端点中断的线程化处理程序
|
||||
处理剩余的端点工作,这些工作可能会睡眠,例如等待命令完成。
|
||||
|
||||
延迟:
|
||||
|
||||
不应增加延迟,因为中断线程具有较高优先级,
|
||||
会在普通用户态任务之前运行
|
||||
(除非用户更改了调度优先级)。
|
||||
|
|
@ -20,10 +20,10 @@ USB 支持
|
|||
acm
|
||||
authorization
|
||||
chipidea
|
||||
dwc3
|
||||
|
||||
Todolist:
|
||||
|
||||
* dwc3
|
||||
* ehci
|
||||
* usbmon
|
||||
* functionfs
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user