[RK3288][Android6.0] USB hub初始化流程小结

Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92

上一篇文件小结了USB设备的枚举过程,而设备是插入到hub上才被检测到的.
这里小结hub的初始化,假设初始化之前USB设备已经插入,并且这里讨论的是
root hub,非root hub的行为会和usb设备类似.

usb core初始化会创建一个hub thread, 来处理USB设备插入后的枚举事件.
usb_init ->    core/usb.c
    usb_hub_init ->    hub.c
        usb_register    //和其他USB设备一样注册到core中,让core知道它的存在.
        hub_thread ->
            hub_events    //while循环,第一次进来后hub event list是空,马上退出然后进入休眠.
            wait_event_freezable    //休眠等待测到有usb插入.


对于root hub,它和host controller一起的,也就是说有host controller,就一定有root hub存在,
在host controller初始化时会一并将root hub注册.
ehci_rk_init -> echi-rockchip.c
    platform_driver_register ->
        ehci_rk_probe ->
            usb_add_hcd ->
                usb_alloc_dev     //分配root hub的usb_device
                register_root_hub ->
             
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值