DragonFly commits List (threaded) for 2004-07
cvs commit: src/sys/bus/usb ehci.c ehcireg.h
dillon 2004/07/07 20:47:09 PDT
DragonFly src repository
sys/bus/usb ehci.c ehcireg.h
Bring EHCI up-to-date with NetBSD. The most serious fixes are 1.53, 1.55,
1.56, and 1.64.
Fix a byte order error. (note: was already previously ported to
Fix an endianness problem (EHCI_NULL was being double-swapped).
Make one message dependent on ohcidebug, so it doesn't interfere with polled
operation; e.g. when entering a root device or in DDB.
Further cleanup of toggle handling. Now that we use EHCI_QH_DTC, we don't
need to fiddle with the TOGGLE bit in the overlay descriptor, so minimize
how much we fuss with it.
Fix an error in a debug printf().
Adjust a couple of comments to make it clear WTF is going on.
Remove comment about the data toggle being borked.
As the ehci_idone() now uses the variable `epipe' unconditionally, always
declare it (in other words, make this file compile w/o EHCI_DEBUG).
Fix a stupid bug in ehci_check_intr() that caused use to try to complete a
transaction that was still running. Now ehci can handle multiple devices
being active at once.
Oops. Remove a couple of printf()s.
Failure to properly mask off UE_DIR_IN from the endpoint address was causing
OHCI_ED_FORMAT_ISO and EHCI_QH_HRECL to get set spuriously, causing rather
Suddenly I get MUCH better performance with ehci...
Set the data toggle correctly, and use EHCI_QTD_DTC. This fixes problems with
my ALi-based drive enclosure (it works now, rather than failing to attach).
Also seems to work with a GL811-based enclosure and an ASUS enclosure with a
CD-RW, on both Intel and NEC controllers.
Note: The ALi enclosure is currently very SLOW, due to some issue with taking
too long to notice that the QTD is complete. This requires more investigation.
Michael van Elst reports his USB2 disk works stable after latest Chuck's
ehci.c changes, so remove the item from TODO.
in ehci_softintr() when looping over the active xfers, save the next pointer
before calling ehci_check_intr(), since that will free the xfer structure
if the xfer is complete.
add list of known issues, from Lennart Augustsson and Michael van Elst
Use the correct wValue to get hub desriptors.
Also, make wValue checks of root hub codes less strict.
Revision Changes Path
1.6 +75 -58 src/sys/bus/usb/ehci.c
1.3 +5 -4 src/sys/bus/usb/ehcireg.h