linux/drivers/usb
Dan Streetman c065c60e83 USB: ehci-sched.c: EHCI SITD scheduling bugfix
Without this patch, the driver won't check that the last fully-occupied
uframe for a new split transaction was vacant beforehand.  This can
lead to a situation in which the first 188 bytes of a 192-byte
isochronous transfer are scheduled in the same uframe as an existing
interrupt transfer.  The resulting schedule looks like this:

       uframe 0: 188-byte isoc-OUT SSPLIT, 8-byte int-IN SSPLIT
       uframe 1: 4-byte isoc-OUT SSPLIT

The SSPLITs are intermingled, causing an error in the downstream hub's
TT.

If you are having problems with devices or hub ports resetting, or failed
interrupt transfers, when you start using a USB audio or video (Isochronous)
device, this patch may help.


Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Reported-by: Kung James <kong1191@gmail.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Alan Stern <stern@rowland.harvard.edu>
2009-04-23 14:15:28 -07:00
..
atm trivial: Fix misspelling of firmware 2009-03-30 15:21:59 +02:00
c67x00 usb/c67x00 endianness annotations 2008-06-04 08:06:01 -07:00
class USB: fix oops in cdc-wdm in case of malformed descriptors 2009-04-17 10:50:24 -07:00
core USB: add reset endpoint operations 2009-04-17 10:50:27 -07:00
gadget USB: Gadget: MIPS CI13xxx UDC bugfixes 2009-04-23 14:15:27 -07:00
host USB: ehci-sched.c: EHCI SITD scheduling bugfix 2009-04-23 14:15:28 -07:00
image USB: replace uses of __constant_{endian} 2009-03-24 16:20:33 -07:00
misc USB: remove phidget drivers from kernel tree. 2009-03-24 16:20:37 -07:00
mon USB: usbmon: Add binary API v1 2009-03-24 16:20:36 -07:00
musb USB: musb: fix build when !CONFIG_PM 2009-04-23 14:15:27 -07:00
otg Replace all DMA_nBIT_MASK macro with DMA_BIT_MASK(n) 2009-04-13 15:04:33 -07:00
serial USB: fix mos7840 problem with minor numbers 2009-04-23 14:15:28 -07:00
storage USB: Unusual Device support for Gold MP3 Player Energy 2009-04-23 14:15:27 -07:00
wusbcore WUSB: correct format of wusb_chid sysfs file 2009-04-17 10:50:29 -07:00
Kconfig sh: Add OHCI USB support for SH7786 2009-03-16 19:40:34 +09:00
Makefile USB: Add platform device support for the ISP1760 USB chip 2009-03-24 16:20:31 -07:00
README
usb-skeleton.c USB: skeleton: Use dev_info instead of info 2009-03-24 16:20:30 -07:00

README

To understand all the Linux-USB framework, you'll use these resources:

    * This source code.  This is necessarily an evolving work, and
      includes kerneldoc that should help you get a current overview.
      ("make pdfdocs", and then look at "usb.pdf" for host side and
      "gadget.pdf" for peripheral side.)  Also, Documentation/usb has
      more information.

    * The USB 2.0 specification (from www.usb.org), with supplements
      such as those for USB OTG and the various device classes.
      The USB specification has a good overview chapter, and USB
      peripherals conform to the widely known "Chapter 9".

    * Chip specifications for USB controllers.  Examples include
      host controllers (on PCs, servers, and more); peripheral
      controllers (in devices with Linux firmware, like printers or
      cell phones); and hard-wired peripherals like Ethernet adapters.

    * Specifications for other protocols implemented by USB peripheral
      functions.  Some are vendor-specific; others are vendor-neutral
      but just standardized outside of the www.usb.org team.

Here is a list of what each subdirectory here is, and what is contained in
them.

core/		- This is for the core USB host code, including the
		  usbfs files and the hub class driver ("khubd").

host/		- This is for USB host controller drivers.  This
		  includes UHCI, OHCI, EHCI, and others that might
		  be used with more specialized "embedded" systems.

gadget/		- This is for USB peripheral controller drivers and
		  the various gadget drivers which talk to them.


Individual USB driver directories.  A new driver should be added to the
first subdirectory in the list below that it fits into.

image/		- This is for still image drivers, like scanners or
		  digital cameras.
../input/	- This is for any driver that uses the input subsystem,
		  like keyboard, mice, touchscreens, tablets, etc.
../media/	- This is for multimedia drivers, like video cameras,
		  radios, and any other drivers that talk to the v4l
		  subsystem.
../net/		- This is for network drivers.
serial/		- This is for USB to serial drivers.
storage/	- This is for USB mass-storage drivers.
class/		- This is for all USB device drivers that do not fit
		  into any of the above categories, and work for a range
		  of USB Class specified devices. 
misc/		- This is for all USB device drivers that do not fit
		  into any of the above categories.