freebsd-skq/sys/dev/usb/controller
Andrew Thompson c8a14b9124 EHCI Hardware BUG workaround
The EHCI HW can use the qtd_next field instead of qtd_altnext when a short
packet is received. This contradicts what is stated in the EHCI datasheet.
Also the total-bytes field in the status field of the following TD gets
corrupted upon reception of a short packet!  We work this around in software by
not queueing more than one job/TD at a time of up to 16Kbytes! The bug has been
seen on multiple INTEL based EHCI chips.  Other vendors have not been tested
yet.

- Applications using /dev/usb/X.Y.Z, where Z is non-zero are affected, but not
  applications using LibUSB v0.1, v1.2 and v2.0.
- Mass Storage (umass) is affected.

Submitted by:	Hans Petter Selasky
MFC after:	3 days
2009-10-01 18:37:16 +00:00
..
at91dci_atmelarm.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
at91dci.c USB CORE: 2009-07-30 00:14:34 +00:00
at91dci.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
atmegadci_atmelarm.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
atmegadci.c Clear all interrupts rather than just SETUP packet. 2009-09-28 07:10:32 +00:00
atmegadci.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
avr32dci.c USB CORE: 2009-07-30 00:14:34 +00:00
avr32dci.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
ehci_ixp4xx.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
ehci_mbus.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
ehci_pci.c Import two PCI quirks from Linux 2009-09-28 07:06:47 +00:00
ehci.c EHCI Hardware BUG workaround 2009-10-01 18:37:16 +00:00
ehci.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
musb_otg_atmelarm.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
musb_otg.c USB CORE: 2009-07-30 00:14:34 +00:00
musb_otg.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
ohci_atmelarm.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
ohci_pci.c USB controller: 2009-07-30 00:12:47 +00:00
ohci.c USB CORE: 2009-07-30 00:14:34 +00:00
ohci.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
uhci_pci.c USB controller: 2009-07-30 00:12:47 +00:00
uhci.c USB CORE: 2009-07-30 00:14:34 +00:00
uhci.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00
usb_controller.c MFp4 @ 168387 2009-09-28 07:01:54 +00:00
uss820dci_atmelarm.c - Make struct usb_xfer opaque so that drivers can not access the internals 2009-06-23 02:19:59 +00:00
uss820dci.c USB CORE: 2009-07-30 00:14:34 +00:00
uss820dci.h s/usb2_/usb_/ on all typedefs for the USB stack. 2009-05-29 18:46:57 +00:00