[This is the readme for ohci.c, ohci-debug.c and ohci.h] September 05, 1999 17:03:21 I haven't updated this file in a while. I have started merging good ideas from the ohci-hcd driver into this code as well as simplifying the code where I can. Isochronous transfers still need to be ported over from ohci-hcd. Large control and bulk transfers should be working much better now. A big thanks goes to 3Com and APC for donating me a modem and UPS to test with! They aren't working with OHCI quite yet but we hope to change that soon. June 23, 1999 00:31:20 PST I now have bulk support in a reasonably working state. The only device I have tested it with at the moment is my Epson Stylus 740 printer. I can print both small and large files. I have included code to support transfers of large amounts of data in either control or bulk transfers. Check out the build_td_chain() and add_td_chain_to_ed() functions. TODO: ~ Get Michael Gee's mass storage driver working with my donated YE-Data floppy drive over OHCI. ~ Drool on the Epson printer because its the new toy around the house. June 08, 1999 01:23:34 Paul Mackerras went through the OHCI (& USB code) to fix most of the endianness issues so that the code now works on Linux-PPC. He also simplified add_td_to_ed to be simpler & atomic to the hardware. May 16, 1999 16:20:54 EDs are now allocated dynamically from their device's pool. Root hub status changes should stop the infinite "no device connected" messages that occurred after removing a device. TODO: ~ Add Isochronous transfer support. These have their own special format TDs to allow for several DMA data pointers. Kinda neat, but likely harder to use through a generic interface in practice. ~ Support dynamic allocation & growth of the TD/ED pools. Merge them into global pools rather than a today's static per device allocation. KNOWN BUGS: ~ Unplugging a hub causes khubd to Oops. I don't think this is directly related to OHCI, but due to the fact that the interrupt TD for the hub is never stopped. We need a usb_release_irq() that gets called using the "IRQ handle" that should be returned by usb_request_irq(). May 09, 1999 16:25:58 PST Cool, things are working "well" now. (I'm not getting oops's from the OHCI code anyways.. ;). I can attach a usb hub and mouse in any possible arrangement of the two and they get configured properly. You can see that the mouse Interrupt transfers are occuring and being acknowledged because /proc/interrupts usb-ohci goes up accordingly with mouse movements/events. That means the TD at least returns some data and requeues itself. - greg@electricrain.com