> Would I be correct in saying that the urb->complete routine for a bulk or > control request is called while doing periodic processing ?
No ... the "bottom half" tasklet is going to be processing either the async schedule (bulk and control transfers) or else the periodic schedule (interrupt and iso transfers). But never both at the same time. They're different hardware data structures, so when it's doing periodic processing it never sees the async endpoints. BUT: for all urbs, urb->complete() gets called when the data has been transferred (or on error). You'd be correct to say that the call is made _directly_ by ehci-hcd only for interrupt transfers that are being resubmitted ... which is one kind of periodic processing. > I am looking through the ehci-hcd code and it > seems that completion routines are called when qh_completions(,,freeing=0) > is called, i.e. periodic processing. I hope you're looking at the current version -- 2.5.11, Marcelo's tree is mostly from late last year. (Though I hope 2.4.19-final will have some important updates, when it arrives...) What you're seeing is that the hardware uses the same code to work with QH/QTD data structures whether they're used for interrupt, bulk, or control endpoints. Most of the special-case logic for interrupt transfers comes from the "automagic URB resubmit" model. It could -- IMO should! -- be more simple, but I'd rather start that cleanup is higher up in the USB stack. - Dave _______________________________________________________________ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel