[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

