当前位置:  技术问答>linux和unix

发分!!

    来源: 互联网  发布时间:2016-11-30

    本文导语:  本帖最后由 guolele2010 于 2011-05-17 21:17:32 编辑 阅读源码时,有点问题,我想问一下,usb 设备插入后,流程是怎么样的?插入会产生中断吗? 我的理解是不会,因为插入只是hub里产生一个D-或者D+的引脚电平变化,正确...

本帖最后由 guolele2010 于 2011-05-17 21:17:32 编辑
阅读源码时,有点问题,我想问一下,usb 设备插入后,流程是怎么样的?插入会产生中断吗?
我的理解是不会,因为插入只是hub里产生一个D-或者D+的引脚电平变化,正确应该是HUB轮循接到端口
然后检测到端口状态变化后会处理一个urb,那个urb是什么时候提交的?
usb_hcd_poll_rh_status->length>0里的代码

if (length > 0) {

/* try to complete the status urb */
spin_lock_irqsave(&hcd_root_hub_lock, flags);
urb = hcd->status_urb;
if (urb) {
hcd->poll_pending = 0;
hcd->status_urb = NULL;
urb->actual_length = length;
memcpy(urb->transfer_buffer, buffer, length);

usb_hcd_unlink_urb_from_ep(hcd, urb);
spin_unlock(&hcd_root_hub_lock);
usb_hcd_giveback_urb(hcd, urb, 0);
spin_lock(&hcd_root_hub_lock);
} else {
length = 0;
hcd->poll_pending = 1;
}
spin_unlock_irqrestore(&hcd_root_hub_lock, flags);
}

这代码调用的usb_hcd_giveback_urb,给回谁了?

|
该回复于2011-05-24 09:42:28被版主删除

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3