On Thursday 28 December 2006 9:33 am, Marcelo Tosatti wrote: > Hi, > > The root hub status timer is problematic for tickless systems.
Yes. Most of them (by number) being on ARM, using OHCI, which is why that driver got converted to non-polled operation already. :) Root hub polling is largely a legacy of the initial Linux 2.2 host controller implementations. We're slowly getting past most such limitations. > So I've hacked up a patch to switch ehci-hcd to new_polling. Thanks!! Glad to see this. Though I'm still waiting to x86 systes able to run in tickless mode... and for that matter, to see the tickless support become generic (vs ARM-specific). The "clockevent" stuff hasn't merged yet, I guess that's got to come first ... > Unfortunately ehci_irq holds ehci->lock, so calling > usb_hcd_poll_rh_status() directly from IRQ context is not possible. > > Due to that, I've moved the call to a workqueue instance. What Alan said ... workqueue not desired. We have khubd, whose job it is to do such stuff. > Is it necessary to poll status during certain situations? OHCI needed to poll since the spec didn't stipulate whether its analogue of PCD was triggered by level ("change" bit nonzero in the per-port root hub register) or edge ("change" bit changed to become nonzero). So naturally different vendors made different choices. Your excerpt from the EHCI spec seems to say that EHCI requires that to be edge trigered ... which means that polling won't be required. (Modulo silicon bugs, and AFAIK we've not yet seen anything using the wrong triggering.) - Dave ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel