Linus Torvalds 2857676045 Merge tag 'overflow-v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux %!s(int64=7) %!d(string=hai) anos
..
atm 6453f53b75 USB: atm: fix up some remaining DEVICE_ATTR() usage %!s(int64=7) %!d(string=hai) anos
c67x00 3efe891f61 USB: add SPDX identifiers to all remaining Makefiles %!s(int64=7) %!d(string=hai) anos
chipidea a61b75d108 USB: chipidea: no need to check return value of debugfs_create functions %!s(int64=7) %!d(string=hai) anos
class baf12d6dde usb: usbtmc: Remove rigol_quirk %!s(int64=7) %!d(string=hai) anos
common fde0aa6c17 usb: common: Small class for USB role switches %!s(int64=7) %!d(string=hai) anos
core ec064d3c6b Merge tag 'driver-core-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core %!s(int64=7) %!d(string=hai) anos
dwc2 1dcd569620 USB: dwc2: no need to check return value of debugfs_create functions %!s(int64=7) %!d(string=hai) anos
dwc3 535c8dc5c4 USB: dwc3: no need to check return value of debugfs_create functions %!s(int64=7) %!d(string=hai) anos
early 4bda35a065 usb: early: Correct the endpoint type value for bulk in endpoint %!s(int64=7) %!d(string=hai) anos
gadget 2857676045 Merge tag 'overflow-v4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux %!s(int64=7) %!d(string=hai) anos
host c2ef60fea2 Revert "xhci: Reset Renesas uPD72020x USB controller for 32-bit DMA issue" %!s(int64=7) %!d(string=hai) anos
image 894025f24b Merge tag 'usb-4.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb %!s(int64=7) %!d(string=hai) anos
isp1760 de0611b27d usb: isp1760: Replace mdelay with msleep in isp1760_stop %!s(int64=7) %!d(string=hai) anos
misc a4a00f6b9d usb-misc: sisusbvga: fix spelling mistake: "asymmeric" -> "asymmetric" %!s(int64=7) %!d(string=hai) anos
mon 26d0b228b4 USB: mon: no need to check return value of debugfs_create functions %!s(int64=7) %!d(string=hai) anos
mtu3 71cae9ad42 USB: mtu3: no need to check return value of debugfs_create_dir() %!s(int64=7) %!d(string=hai) anos
musb 8a1ef171ff USB: musb: clean up debugfs file and directory creation %!s(int64=7) %!d(string=hai) anos
phy 822852f203 phy: tegra: select USB_COMMON %!s(int64=7) %!d(string=hai) anos
renesas_usbhs d8351953fb USB: renesas_usbhs: drop unused legacy-phy support %!s(int64=7) %!d(string=hai) anos
roles cb29684686 usb: roles: intel_xhci: Enable runtime PM %!s(int64=7) %!d(string=hai) anos
serial 07c4dd3435 Merge tag 'usb-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb %!s(int64=7) %!d(string=hai) anos
storage ca7d9515d0 usb-storage: Add compatibility quirk flags for G-Technologies G-Drive %!s(int64=7) %!d(string=hai) anos
typec bc9832c4a1 USB: typec: fsusb302: no need to check return value of debugfs_create_dir() %!s(int64=7) %!d(string=hai) anos
usbip a0d6ec8809 usbip: vhci_sysfs: fix potential Spectre v1 %!s(int64=7) %!d(string=hai) anos
wusbcore 225b3dc92d USB: wusbcore: crypto: Remove VLA usage %!s(int64=7) %!d(string=hai) anos
Kconfig 602f4fb71d usb: select USB_COMMON for usb role switch config %!s(int64=7) %!d(string=hai) anos
Makefile f6fb9ec02b usb: roles: Add Intel xHCI USB role switch driver %!s(int64=7) %!d(string=hai) anos
README 37ebb54915 usb: hub: rename khubd to hub_wq in documentation and comments %!s(int64=11) %!d(string=hai) anos
usb-skeleton.c e4c4835171 usb: usb-skeleton: make MODULE_LICENSE and SPDX tag match %!s(int64=7) %!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 ("hub_wq").

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.