On Monday 13 November 2006 1:08 pm, Laurent Pinchart wrote: > Hi everybody, > > I'm investigating a hardware issue with a high-speed USB webcam. I would like > to hack the EHCI driver to send no more than a single transaction per frame. > > If I understand the big picture clearly, request are split into transactions, > which are queued on a list accessible by the controller. I suppose that, once > the queue is full,
There's no such notion of a "full" queue. All requests are mapped into transactions (don't say "split", it has other semantics here), and those are then put into the appropriate part of the schedule ... which for all but isochronous endpoints is a kind of hardware-updated queue. > further transactions are queued on a software queue, are > later copied to the hardware queue in the interrupt handler (or in a kernel > thread waken up by the interrupt handler). If that's right, Nope, it's wrong. There's only one queue per endpoint, the hardware queue. There's a software view of that queue (hardware uses dma addresses, software uses kernel virtual addresses), but to eliminate errors/races/bugs/misbehavior those two are joined at the hip ... the hardware walks the queue, the software scans up to the current hardware position to collect completions. (And then there are the nasty unlink-this-transaction cases, and other fault cleanup.) > I'd like to hack > the driver to queue a single transaction at once (basically assuming the > queue length is one transaction), and wait until the next SOF before queuing > the next one. > > Could anyone give me some pointers regarding how to do so ? I don't really > care if it makes USB awfully slow, this is just a test. What you'd need to do is more or less replace the notion of a queue with something else ... sorry, you'll have to figure that out yourself. - 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 _______________________________________________ [email protected] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
