首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内核如何知道USB设备何时自行进入低功耗模式(不是由主机启动)?

内核如何知道USB设备何时自行进入低功耗模式(不是由主机启动)?
EN

Stack Overflow用户
提问于 2017-07-27 13:15:32
回答 1查看 1.3K关注 0票数 0

一个USB设备能够进入低功耗模式(支持挂起和恢复)。

主机还可以为设备启动、挂起和恢复,在这种情况下,主机知道设备状态。

设想情况是:

  • 设备启动低功耗模式。
  • 主机驱动程序希望访问有关设备低功耗状态的信息。
  • 驱动程序如何从Linux内核获取这些信息?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-28 15:33:39

根据USB规范,USB设备不能挂起到USB主机的链接。只有主机才能挂起链接。挂起(U3)也不同于低功耗模式(U1/U2)。通过与主机协商,设备可以开始切换到低功耗模式,但不能暂停。

现在让我们考虑一下您的意思是低功耗模式(U1/U2),那么主机驱动程序无法知道端口何时切换到由设备启动的低功耗模式,因为这不会发生任何事件。您需要监视您自己的链接状态,以查看链接是否切换到低功耗模式。

据我所知,有一个API用来获取连接到集线器的设备的链接状态。

代码语言:javascript
复制
static void xhci_hub_report_link_state(struct xhci_hcd *xhci,
                u32 *status, u32 status_reg)

此API可用于跟踪通过外部集线器连接的设备的链接状态。但是没有API可以用来读取根中心端口链接状态。如果主机控制器驱动程序公开任何接口,则可以使用该接口。

请参阅dwc3控制器代码,该代码公开可用于读取链接状态的调试器接口。

path -usb/dwc3/调试器c

空气污染指数-

代码语言:javascript
复制
static int dwc3_link_state_show(struct seq_file *s, void *unused)

PS -我考虑过你有XHCI控制器。但是对于EHCI控制器来说也是一样的。设备永远不能挂起USB连接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45351924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档