Linus Torvalds 82abb273d8 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus %!s(int64=11) %!d(string=hai) anos
..
atm 803a536243 usb: delete non-required instances of include <linux/init.h> %!s(int64=12) %!d(string=hai) anos
c67x00 f3c1f5151a USB: c67x00: correct spelling mistakes in comments %!s(int64=12) %!d(string=hai) anos
chipidea 10775eb17b usb: chipidea: udc: update gadget states according to ch9 %!s(int64=11) %!d(string=hai) anos
class d846b7650d USB: usbtmc: fix DMA on stack %!s(int64=11) %!d(string=hai) anos
common 1dfa91aa5b usb: common: rename phy-fsm-usb.c to usb-otg-fsm.c %!s(int64=11) %!d(string=hai) anos
core 3f17ea6dea Merge branch 'next' (accumulated 3.16 merge window patches) into master %!s(int64=11) %!d(string=hai) anos
dwc2 112fe8e290 usb: dwc2: Add function to calculate correct FIFO sizes %!s(int64=11) %!d(string=hai) anos
dwc3 f8712528ae Merge tag 'usb-for-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next %!s(int64=11) %!d(string=hai) anos
early 8c9247a6b5 USB: ehci-dbgp: drop dead code. %!s(int64=12) %!d(string=hai) anos
gadget 776edb5931 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next %!s(int64=11) %!d(string=hai) anos
host 82abb273d8 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus %!s(int64=11) %!d(string=hai) anos
image 3569843a2b USB: image: correct spelling mistake in comment %!s(int64=12) %!d(string=hai) anos
misc a7683eb3af usb: usbtest: add pattern check on pipe in phase of unlink read %!s(int64=11) %!d(string=hai) anos
mon 25e11ec4fe USB: regroup all depends on USB within an if USB block %!s(int64=12) %!d(string=hai) anos
musb f8712528ae Merge tag 'usb-for-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next %!s(int64=11) %!d(string=hai) anos
phy e5c4ecdc55 Merge tag 'usb-3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb into next %!s(int64=11) %!d(string=hai) anos
renesas_usbhs 73ad0adcb6 Merge tag 'usb-for-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next %!s(int64=12) %!d(string=hai) anos
serial 3f17ea6dea Merge branch 'next' (accumulated 3.16 merge window patches) into master %!s(int64=11) %!d(string=hai) anos
storage a328512d3c USB: storage: ene_ub6250: Use kmemdup instead of kmalloc + memcpy %!s(int64=11) %!d(string=hai) anos
wusbcore df3ce23a56 USB: wusbcore: fix control-pipe directions %!s(int64=11) %!d(string=hai) anos
Kconfig b797b76fb4 usb: host: remove USB_ARCH_HAS_?HCI %!s(int64=12) %!d(string=hai) anos
Makefile f4cbd33fd5 usb: move usb/usb-common.c to usb/common/usb-common.c %!s(int64=11) %!d(string=hai) anos
README 9e3e31046f USB: fix directory references in usb/README %!s(int64=18) %!d(string=hai) anos
usb-skeleton.c 803a536243 usb: delete non-required instances of include <linux/init.h> %!s(int64=12) %!d(string=hai) anos

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.