projects/linux·commit 1be025d3

Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

1be025d3 · Linus Torvalds <[email protected]> · 2011-10-25 12:23:15 +02:00

* 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (260 commits)
  usb: renesas_usbhs: fixup inconsistent return from usbhs_pkt_push()
  usb/isp1760: Allow to optionally trigger low-level chip reset via GPIOLIB.
  USB: gadget: midi: memory leak in f_midi_bind_config()
  USB: gadget: midi: fix range check in f_midi_out_open()
  QE/FHCI: fixed the CONTROL bug
  usb: renesas_usbhs: tidyup for smatch warnings
  USB: Fix USB Kconfig dependency problem on 85xx/QoirQ platforms
  EHCI: workaround for MosChip controller bug
  usb: gadget: file_storage: fix race on unloading
  USB: ftdi_sio.c: Use ftdi async_icount structure for TIOCMIWAIT, as in other drivers
  USB: ftdi_sio.c:Fill MSR fields of the ftdi async_icount structure
  USB: ftdi_sio.c: Fill LSR fields of the ftdi async_icount structure
  USB: ftdi_sio.c:Fill TX field of the ftdi async_icount structure
  USB: ftdi_sio.c: Fill the RX field of the ftdi async_icount structure
  USB: ftdi_sio.c: Basic icount infrastructure for ftdi_sio
  usb/isp1760: Let OF bindings depend on general CONFIG_OF instead of PPC_OF .
  USB: ftdi_sio: Support TI/Luminary Micro Stellaris BD-ICDI Board
  USB: Fix runtime wakeup on OHCI
  xHCI/USB: Make xHCI driver have a BOS descriptor.
  usb: gadget: add new usb gadget for ACM and mass storage
  ...
Commit
1be025d3cb40cd295123af2c394f7229ef9b30ca
Parents
2d03423b · a2c76b83

Merge commit. Changes below are compared with the first parent: 2d03423b.

Changes

247 files changed · +15136 −4175

FileStatusAddDelContent
Documentation/ABI/testing/sysfs-bus-pci-drivers-ehci_hcdadded+46−0View file
Documentation/ABI/testing/sysfs-bus-usbmodified+15−0View file
Documentation/usb/dwc3.txtadded+45−0View file
Documentation/usb/power-management.txtmodified+26−0View file
MAINTAINERSmodified+8−0View file
arch/arm/mach-mmp/include/mach/pxa168.hmodified+7−0View file
arch/arm/mach-mmp/pxa168.cmodified+46−0View file
arch/arm/mach-omap2/Makefilemodified+5−6View file
arch/arm/mach-shmobile/board-mackerel.cmodified+1−0View file
drivers/usb/Kconfigmodified+15−1View file
drivers/usb/Makefilemodified+4−0View file
drivers/usb/class/cdc-acm.cmodified+6−3View file
drivers/usb/class/cdc-wdm.cmodified+1−1View file
drivers/usb/class/usbtmc.cmodified+2−3View file
drivers/usb/core/config.cmodified+107−4View file
drivers/usb/core/devices.cmodified+2−2View file
drivers/usb/core/devio.cmodified+35−22View file
drivers/usb/core/driver.cmodified+15−1View file
drivers/usb/core/endpoint.cmodified+1−1View file
drivers/usb/core/hcd-pci.cmodified+1−1View file
drivers/usb/core/hcd.cmodified+24−3View file
drivers/usb/core/hub.cmodified+183−128View file
drivers/usb/core/message.cmodified+1−1View file
drivers/usb/core/quirks.cmodified+24−0View file
drivers/usb/core/sysfs.cmodified+58−1View file
drivers/usb/core/urb.cmodified+1−1View file
drivers/usb/core/usb.cmodified+1−0View file
drivers/usb/core/usb.hmodified+7−0View file
drivers/usb/dwc3/Kconfigadded+25−0View file
drivers/usb/dwc3/Makefileadded+36−0View file
drivers/usb/dwc3/core.cadded+484−0View file
drivers/usb/dwc3/core.hadded+768−0View file
drivers/usb/dwc3/debug.hadded+50−0View file
drivers/usb/dwc3/debugfs.cadded+441−0View file
drivers/usb/dwc3/dwc3-omap.cadded+401−0View file
drivers/usb/dwc3/dwc3-pci.cadded+219−0View file
drivers/usb/dwc3/ep0.cadded+804−0View file
drivers/usb/dwc3/gadget.cadded+2104−0View file
drivers/usb/dwc3/gadget.hadded+211−0View file
drivers/usb/dwc3/io.hadded+54−0View file
drivers/usb/gadget/Kconfigmodified+42−5View file
drivers/usb/gadget/Makefilemodified+3−1View file
drivers/usb/gadget/acm_ms.cadded+256−0View file
drivers/usb/gadget/amd5536udc.cmodified+3−17View file
drivers/usb/gadget/amd5536udc.hmodified+0−9View file
drivers/usb/gadget/at91_udc.cmodified+11−21View file
drivers/usb/gadget/at91_udc.hmodified+0−10View file
drivers/usb/gadget/atmel_usba_udc.cmodified+6−7View file
drivers/usb/gadget/cdc2.cmodified+0−9View file
drivers/usb/gadget/ci13xxx_msm.cmodified+0−11View file
drivers/usb/gadget/ci13xxx_udc.cmodified+1−1View file
drivers/usb/gadget/composite.cmodified+6−31View file
drivers/usb/gadget/config.cmodified+0−9View file
drivers/usb/gadget/dbgp.cmodified+0−1View file
drivers/usb/gadget/dummy_hcd.cmodified+2−11View file
drivers/usb/gadget/epautoconf.cmodified+1−11View file
drivers/usb/gadget/ether.cmodified+0−9View file
drivers/usb/gadget/f_audio.cmodified+8−7View file
drivers/usb/gadget/f_ecm.cmodified+0−9View file
drivers/usb/gadget/f_eem.cmodified+0−9View file
drivers/usb/gadget/f_fs.cmodified+0−9View file
drivers/usb/gadget/f_hid.cmodified+0−9View file
drivers/usb/gadget/f_loopback.cmodified+0−9View file
drivers/usb/gadget/f_mass_storage.cmodified+111−85View file
drivers/usb/gadget/f_midi.cadded+998−0View file
drivers/usb/gadget/f_ncm.cmodified+0−9View file
drivers/usb/gadget/f_obex.cmodified+0−9View file
drivers/usb/gadget/f_phonet.cmodified+0−10View file
drivers/usb/gadget/f_rndis.cmodified+0−9View file
drivers/usb/gadget/f_sourcesink.cmodified+0−9View file
drivers/usb/gadget/f_subset.cmodified+0−9View file
drivers/usb/gadget/f_uvc.cmodified+0−1View file
drivers/usb/gadget/f_uvc.hmodified+0−1View file
drivers/usb/gadget/file_storage.cmodified+139−115View file
drivers/usb/gadget/fsl_qe_udc.cmodified+1−1View file
drivers/usb/gadget/fsl_udc_core.cmodified+20−35View file
drivers/usb/gadget/fusb300_udc.cmodified+3−13View file
drivers/usb/gadget/fusb300_udc.hmodified+0−10View file
drivers/usb/gadget/g_ffs.cmodified+0−9View file
drivers/usb/gadget/gadget_chips.hmodified+3−0View file
drivers/usb/gadget/gmidi.cmodified+88−1204View file
drivers/usb/gadget/hid.cmodified+0−9View file
drivers/usb/gadget/imx_udc.cmodified+2−2View file
drivers/usb/gadget/imx_udc.hmodified+0−5View file
drivers/usb/gadget/inode.cmodified+0−9View file
drivers/usb/gadget/langwell_udc.cmodified+46−101View file
drivers/usb/gadget/langwell_udc.hmodified+2−10View file
drivers/usb/gadget/m66592-udc.cmodified+3−13View file
drivers/usb/gadget/m66592-udc.hmodified+0−10View file
drivers/usb/gadget/mass_storage.cmodified+1−10View file
drivers/usb/gadget/multi.cmodified+0−9View file
drivers/usb/gadget/mv_udc.hmodified+22−4View file
drivers/usb/gadget/mv_udc_core.cmodified+446−114View file
drivers/usb/gadget/mv_udc_phy.cdeleted+0−214View before deletion
drivers/usb/gadget/ncm.cmodified+0−9View file
drivers/usb/gadget/ndis.hmodified+0−6View file
drivers/usb/gadget/net2272.cmodified+22−56View file
drivers/usb/gadget/net2280.cmodified+20−67View file
drivers/usb/gadget/net2280.hmodified+0−9View file
drivers/usb/gadget/omap_udc.cmodified+4−14View file
drivers/usb/gadget/pch_udc.cmodified+3−12View file
drivers/usb/gadget/printer.cmodified+4−21View file
drivers/usb/gadget/pxa25x_udc.cmodified+9−21View file
drivers/usb/gadget/pxa25x_udc.hmodified+1−16View file
drivers/usb/gadget/pxa27x_udc.cmodified+1−11View file
drivers/usb/gadget/pxa27x_udc.hmodified+0−9View file
drivers/usb/gadget/r8a66597-udc.cmodified+415−101View file
drivers/usb/gadget/r8a66597-udc.hmodified+46−27View file
drivers/usb/gadget/s3c-hsotg.cmodified+3−7View file
drivers/usb/gadget/s3c-hsudc.cmodified+53−16View file
drivers/usb/gadget/s3c2410_udc.cmodified+3−13View file
drivers/usb/gadget/s3c2410_udc.hmodified+0−10View file
drivers/usb/gadget/storage_common.cmodified+167−18View file
drivers/usb/gadget/u_ether.cmodified+0−9View file
drivers/usb/gadget/u_ether.hmodified+0−9View file
drivers/usb/gadget/u_serial.cmodified+1−2View file
drivers/usb/gadget/udc-core.cmodified+3−18View file
drivers/usb/gadget/uvc.hmodified+0−1View file
drivers/usb/gadget/uvc_queue.cmodified+0−1View file
drivers/usb/gadget/uvc_v4l2.cmodified+0−1View file
drivers/usb/gadget/uvc_video.cmodified+0−1View file
drivers/usb/gadget/webcam.cmodified+1−1View file
drivers/usb/gadget/zero.cmodified+0−9View file
drivers/usb/host/Kconfigmodified+24−4View file
drivers/usb/host/Makefilemodified+2−1View file
drivers/usb/host/ehci-ath79.cmodified+1−1View file
drivers/usb/host/ehci-au1xxx.cmodified+2−2View file
drivers/usb/host/ehci-dbg.cmodified+16−3View file
drivers/usb/host/ehci-fsl.cmodified+3−3View file
drivers/usb/host/ehci-hcd.cmodified+51−13View file
drivers/usb/host/ehci-hub.cmodified+4−6View file
drivers/usb/host/ehci-mxc.cmodified+1−1View file
drivers/usb/host/ehci-octeon.cmodified+1−1View file
drivers/usb/host/ehci-omap.cmodified+1−1View file
drivers/usb/host/ehci-orion.cmodified+1−1View file
drivers/usb/host/ehci-pci.cmodified+6−1View file
drivers/usb/host/ehci-ps3.cmodified+1−1View file
drivers/usb/host/ehci-pxa168.cadded+363−0View file
drivers/usb/host/ehci-q.cmodified+14−17View file
drivers/usb/host/ehci-s5p.cmodified+2−2View file
drivers/usb/host/ehci-sched.cmodified+30−11View file
drivers/usb/host/ehci-sh.cmodified+1−1View file
drivers/usb/host/ehci-spear.cmodified+1−1View file
drivers/usb/host/ehci-tegra.cmodified+1−1View file
drivers/usb/host/ehci-vt8500.cmodified+1−1View file
drivers/usb/host/ehci-xls.cadded+161−0View file
drivers/usb/host/ehci.hmodified+24−0View file
drivers/usb/host/fhci-hcd.cmodified+6−3View file
drivers/usb/host/fhci-sched.cmodified+15−4View file
drivers/usb/host/imx21-hcd.cmodified+1−1View file
drivers/usb/host/isp116x-hcd.cmodified+1−1View file
drivers/usb/host/isp1362-hcd.cmodified+4−4View file
drivers/usb/host/isp1760-hcd.cmodified+270−148View file
drivers/usb/host/isp1760-hcd.hmodified+4−1View file
drivers/usb/host/isp1760-if.cmodified+60−20View file
drivers/usb/host/ohci-ath79.cmodified+1−1View file
drivers/usb/host/ohci-au1xxx.cmodified+1−1View file
drivers/usb/host/ohci-da8xx.cmodified+1−1View file
drivers/usb/host/ohci-ep93xx.cmodified+1−1View file
drivers/usb/host/ohci-hcd.cmodified+5−0View file
drivers/usb/host/ohci-hub.cmodified+1−4View file
drivers/usb/host/ohci-octeon.cmodified+1−1View file
drivers/usb/host/ohci-omap.cmodified+2−2View file
drivers/usb/host/ohci-omap3.cmodified+2−2View file
drivers/usb/host/ohci-pnx4008.cmodified+1−1View file
drivers/usb/host/ohci-pnx8550.cmodified+1−1View file
drivers/usb/host/ohci-ppc-of.cmodified+1−1View file
drivers/usb/host/ohci-ppc-soc.cmodified+1−1View file
drivers/usb/host/ohci-ps3.cmodified+1−1View file
drivers/usb/host/ohci-pxa27x.cmodified+1−1View file
drivers/usb/host/ohci-q.cmodified+2−2View file
drivers/usb/host/ohci-s3c2410.cmodified+1−1View file
drivers/usb/host/ohci-sa1111.cmodified+1−1View file
drivers/usb/host/ohci-sh.cmodified+1−1View file
drivers/usb/host/ohci-sm501.cmodified+1−1View file
drivers/usb/host/ohci-spear.cmodified+1−1View file
drivers/usb/host/ohci-ssb.cmodified+1−1View file
drivers/usb/host/ohci-tmio.cmodified+1−1View file
drivers/usb/host/ohci-xls.cadded+151−0View file
drivers/usb/host/r8a66597-hcd.cmodified+2−2View file
drivers/usb/host/sl811-hcd.cmodified+1−1View file
drivers/usb/host/uhci-hcd.cmodified+34−32View file
drivers/usb/host/uhci-q.cmodified+3−3View file
drivers/usb/host/xhci-ext-caps.hmodified+6−0View file
drivers/usb/host/xhci-hub.cmodified+89−50View file
drivers/usb/host/xhci-mem.cmodified+306−65View file
drivers/usb/host/xhci-pci.cmodified+26−81View file
drivers/usb/host/xhci-ring.cmodified+43−37View file
drivers/usb/host/xhci.cmodified+1064−87View file
drivers/usb/host/xhci.hmodified+182−5View file
drivers/usb/misc/adutux.cmodified+7−7View file
drivers/usb/misc/ftdi-elan.cmodified+1−1View file
drivers/usb/misc/idmouse.cmodified+1−1View file
drivers/usb/misc/iowarrior.cmodified+1−1View file
drivers/usb/misc/ldusb.cmodified+2−2View file
drivers/usb/misc/legousbtower.cmodified+2−2View file
drivers/usb/misc/usblcd.cmodified+72−57View file
drivers/usb/misc/usbled.cmodified+14−11View file
drivers/usb/misc/usbtest.cmodified+8−23View file
drivers/usb/mon/mon_bin.cmodified+1−1View file
drivers/usb/musb/musb_gadget.cmodified+44−27View file
drivers/usb/musb/musb_gadget_ep0.cmodified+8−0View file
drivers/usb/musb/musb_host.cmodified+1−1View file
drivers/usb/musb/musbhsdma.cmodified+1−1View file
drivers/usb/otg/isp1301_omap.cmodified+1−1View file
drivers/usb/otg/twl6030-usb.cmodified+0−16View file
drivers/usb/renesas_usbhs/Kconfigmodified+1−1View file
drivers/usb/renesas_usbhs/Makefilemodified+7−1View file
drivers/usb/renesas_usbhs/common.cmodified+211−25View file
drivers/usb/renesas_usbhs/common.hmodified+56−4View file
drivers/usb/renesas_usbhs/fifo.cmodified+198−24View file
drivers/usb/renesas_usbhs/fifo.hmodified+10−12View file
drivers/usb/renesas_usbhs/mod.cmodified+60−21View file
drivers/usb/renesas_usbhs/mod.hmodified+46−11View file
drivers/usb/renesas_usbhs/mod_gadget.cmodified+47−83View file
drivers/usb/renesas_usbhs/mod_host.cadded+1312−0View file
drivers/usb/renesas_usbhs/pipe.cmodified+91−109View file
drivers/usb/renesas_usbhs/pipe.hmodified+16−11View file
drivers/usb/serial/Kconfigmodified+1−0View file
drivers/usb/serial/ftdi_sio.cmodified+64−27View file
drivers/usb/serial/ftdi_sio_ids.hmodified+5−2View file
drivers/usb/serial/io_edgeport.cmodified+2−2View file
drivers/usb/serial/ipw.cmodified+31−2View file
drivers/usb/serial/opticon.cmodified+1−1View file
drivers/usb/serial/option.cmodified+108−62View file
drivers/usb/serial/pl2303.cmodified+1−3View file
drivers/usb/serial/pl2303.hmodified+5−0View file
drivers/usb/serial/qcserial.cmodified+2−0View file
drivers/usb/serial/symbolserial.cmodified+1−1View file
drivers/usb/serial/usb-serial.cmodified+4−4View file
drivers/usb/storage/Kconfigmodified+1−1View file
drivers/usb/storage/realtek_cr.cmodified+107−9View file
drivers/usb/storage/transport.cmodified+19−15View file
drivers/usb/storage/usb.cmodified+13−3View file
drivers/usb/usb-common.cadded+35−0View file
drivers/usb/usb-skeleton.cmodified+1−1View file
drivers/usb/wusbcore/wa-hc.cmodified+1−1View file
include/linux/platform_data/dwc3-omap.hadded+47−0View file
include/linux/platform_data/mv_usb.hadded+50−0View file
include/linux/sched.hmodified+2−1View file
include/linux/usb.hmodified+19−1View file
include/linux/usb/ch9.hmodified+29−0View file
include/linux/usb/gadget.hmodified+2−2View file
include/linux/usb/hcd.hmodified+2−1View file
include/linux/usb/r8a66597.hmodified+60−0View file
include/linux/usb/renesas_usbhs.hmodified+14−0View file
kernel/signal.cmodified+16−8View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/ABI/testing/sysfs-bus-pci-drivers-ehci_hcd

View file
diff --git a/Documentation/ABI/testing/sysfs-bus-pci-drivers-ehci_hcd b/Documentation/ABI/testing/sysfs-bus-pci-drivers-ehci_hcd
new file mode 100644
index 0000000..60c60fa
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-bus-pci-drivers-ehci_hcd
@@ -0,0 +1,46 @@
+What: /sys/bus/pci/drivers/ehci_hcd/.../companion
+ /sys/bus/usb/devices/usbN/../companion
+Date: January 2007
+KernelVersion: 2.6.21
+Contact: Alan Stern <[email protected]>
+Description:
+ PCI-based EHCI USB controllers (i.e., high-speed USB-2.0
+ controllers) are often implemented along with a set of
+ "companion" full/low-speed USB-1.1 controllers. When a
+ high-speed device is plugged in, the connection is routed
+ to the EHCI controller; when a full- or low-speed device
+ is plugged in, the connection is routed to the companion
+ controller.
+
+ Sometimes you want to force a high-speed device to connect
+ at full speed, which can be accomplished by forcing the
+ connection to be routed to the companion controller.
+ That's what this file does. Writing a port number to the
+ file causes connections on that port to be routed to the
+ companion controller, and writing the negative of a port
+ number returns the port to normal operation.
+
+ For example: To force the high-speed device attached to
+ port 4 on bus 2 to run at full speed:
+
+ echo 4 >/sys/bus/usb/devices/usb2/../companion
+
+ To return the port to high-speed operation:
+
+ echo -4 >/sys/bus/usb/devices/usb2/../companion
+
+ Reading the file gives the list of ports currently forced
+ to the companion controller.
+
+ Note: Some EHCI controllers do not have companions; they
+ may contain an internal "transaction translator" or they
+ may be attached directly to a "rate-matching hub". This
+ mechanism will not work with such controllers. Also, it
+ cannot be used to force a port on a high-speed hub to
+ connect at full speed.
+
+ Note: When this file was first added, it appeared in a
+ different sysfs directory. The location given above is
+ correct for 2.6.35 (and probably several earlier kernel
+ versions as well).
+

Documentation/ABI/testing/sysfs-bus-usb

View file
diff --git a/Documentation/ABI/testing/sysfs-bus-usb b/Documentation/ABI/testing/sysfs-bus-usb
index 294aa86..e647378 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-usb
@@ -142,3 +142,18 @@ Description:
such devices.
Users:
usb_modeswitch
+
+What: /sys/bus/usb/devices/.../power/usb2_hardware_lpm
+Date: September 2011
+Contact: Andiry Xu <[email protected]>
+Description:
+ If CONFIG_USB_SUSPEND is set and a USB 2.0 lpm-capable device
+ is plugged in to a xHCI host which support link PM, it will
+ perform a LPM test; if the test is passed and host supports
+ USB2 hardware LPM (xHCI 1.0 feature), USB2 hardware LPM will
+ be enabled for the device and the USB device directory will
+ contain a file named power/usb2_hardware_lpm. The file holds
+ a string value (enable or disable) indicating whether or not
+ USB2 hardware LPM is enabled for the device. Developer can
+ write y/Y/1 or n/N/0 to the file to enable/disable the
+ feature.

Documentation/usb/dwc3.txt

View file
diff --git a/Documentation/usb/dwc3.txt b/Documentation/usb/dwc3.txt
new file mode 100644
index 0000000..7b590ed
--- /dev/null
+++ b/Documentation/usb/dwc3.txt
@@ -0,0 +1,45 @@
+
+ TODO
+~~~~~~
+Please pick something while reading :)
+
+- Convert interrupt handler to per-ep-thread-irq
+
+ As it turns out some DWC3-commands ~1ms to complete. Currently we spin
+ until the command completes which is bad.
+
+ Implementation idea:
+ - dwc core implements a demultiplexing irq chip for interrupts per
+ endpoint. The interrupt numbers are allocated during probe and belong
+ to the device. If MSI provides per-endpoint interrupt this dummy
+ interrupt chip can be replaced with "real" interrupts.
+ - interrupts are requested / allocated on usb_ep_enable() and removed on
+ usb_ep_disable(). Worst case are 32 interrupts, the lower limit is two
+ for ep0/1.
+ - dwc3_send_gadget_ep_cmd() will sleep in wait_for_completion_timeout()
+ until the command completes.
+ - the interrupt handler is split into the following pieces:
+ - primary handler of the device
+ goes through every event and calls generic_handle_irq() for event
+ it. On return from generic_handle_irq() in acknowledges the event
+ counter so interrupt goes away (eventually).
+
+ - threaded handler of the device
+ none
+
+ - primary handler of the EP-interrupt
+ reads the event and tries to process it. Everything that requries
+ sleeping is handed over to the Thread. The event is saved in an
+ per-endpoint data-structure.
+ We probably have to pay attention not to process events once we
+ handed something to thread so we don't process event X prio Y
+ where X > Y.
+
+ - threaded handler of the EP-interrupt
+ handles the remaining EP work which might sleep such as waiting
+ for command completion.
+
+ Latency:
+ There should be no increase in latency since the interrupt-thread has a
+ high priority and will be run before an average task in user land
+ (except the user changed priorities).

Documentation/usb/power-management.txt

View file
diff --git a/Documentation/usb/power-management.txt b/Documentation/usb/power-management.txt
index c9ffa9c..9d85d96 100644
--- a/Documentation/usb/power-management.txt
+++ b/Documentation/usb/power-management.txt
@@ -487,3 +487,29 @@ succeed, it may still remain active and thus cause the system to
resume as soon as the system suspend is complete. Or the remote
wakeup may fail and get lost. Which outcome occurs depends on timing
and on the hardware and firmware design.
+
+
+ xHCI hardware link PM
+ ---------------------
+
+xHCI host controller provides hardware link power management to usb2.0
+(xHCI 1.0 feature) and usb3.0 devices which support link PM. By
+enabling hardware LPM, the host can automatically put the device into
+lower power state(L1 for usb2.0 devices, or U1/U2 for usb3.0 devices),
+which state device can enter and resume very quickly.
+
+The user interface for controlling USB2 hardware LPM is located in the
+power/ subdirectory of each USB device's sysfs directory, that is, in
+/sys/bus/usb/devices/.../power/ where "..." is the device's ID. The
+relevant attribute files is usb2_hardware_lpm.
+
+ power/usb2_hardware_lpm
+
+ When a USB2 device which support LPM is plugged to a
+ xHCI host root hub which support software LPM, the
+ host will run a software LPM test for it; if the device
+ enters L1 state and resume successfully and the host
+ supports USB2 hardware LPM, this file will show up and
+ driver will enable hardware LPM for the device. You
+ can write y/Y/1 or n/N/0 to the file to enable/disable
+ USB2 hardware LPM manually. This is for test purpose mainly.

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index e1b0c92..37489ec 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2136,6 +2136,14 @@ M: Matthew Garrett <[email protected]>
S: Maintained
F: drivers/platform/x86/dell-wmi.c
+DESIGNWARE USB3 DRD IP DRIVER
+M: Felipe Balbi <[email protected]>
+T: git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git
+S: Maintained
+F: drivers/usb/dwc3/
+
DEVICE NUMBER REGISTRY
M: Torben Mathiasen <[email protected]>
W: http://lanana.org/docs/device-list/index.html

arch/arm/mach-mmp/include/mach/pxa168.h

View file
diff --git a/arch/arm/mach-mmp/include/mach/pxa168.h b/arch/arm/mach-mmp/include/mach/pxa168.h
index 7f00584..7fb568d 100644
--- a/arch/arm/mach-mmp/include/mach/pxa168.h
+++ b/arch/arm/mach-mmp/include/mach/pxa168.h
@@ -35,6 +35,13 @@ extern struct pxa_device_desc pxa168_device_fb;
extern struct pxa_device_desc pxa168_device_keypad;
extern struct pxa_device_desc pxa168_device_eth;
+struct pxa168_usb_pdata {
+ /* If NULL, default phy init routine for PXA168 would be called */
+ int (*phy_init)(void __iomem *usb_phy_reg_base);
+};
+/* pdata can be NULL */
+int __init pxa168_add_usb_host(struct pxa168_usb_pdata *pdata);
+
static inline int pxa168_add_uart(int id)
{
struct pxa_device_desc *d = NULL;

arch/arm/mach-mmp/pxa168.c

View file
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
index 0156f53..b2b280c 100644
--- a/arch/arm/mach-mmp/pxa168.c
+++ b/arch/arm/mach-mmp/pxa168.c
@@ -25,6 +25,9 @@
#include <mach/dma.h>
#include <mach/devices.h>
#include <mach/mfp.h>
+#include <linux/platform_device.h>
+#include <linux/dma-mapping.h>
+#include <mach/pxa168.h>
#include "common.h"
#include "clock.h"
@@ -83,6 +86,7 @@ static APBC_CLK(keypad, PXA168_KPC, 0, 32000);
static APMU_CLK(nand, NAND, 0x19b, 156000000);
static APMU_CLK(lcd, LCD, 0x7f, 312000000);
static APMU_CLK(eth, ETH, 0x09, 0);
+static APMU_CLK(usb, USB, 0x12, 0);
/* device and clock bindings */
static struct clk_lookup pxa168_clkregs[] = {
@@ -104,6 +108,7 @@ static struct clk_lookup pxa168_clkregs[] = {
INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL),
INIT_CLKREG(&clk_keypad, "pxa27x-keypad", NULL),
INIT_CLKREG(&clk_eth, "pxa168-eth", "MFUCLK"),
+ INIT_CLKREG(&clk_usb, "pxa168-ehci", "PXA168-USBCLK"),
};
static int __init pxa168_init(void)
@@ -169,3 +174,44 @@ PXA168_DEVICE(ssp5, "pxa168-ssp", 4, SSP5, 0xd4021000, 0x40, 60, 61);
PXA168_DEVICE(fb, "pxa168-fb", -1, LCD, 0xd420b000, 0x1c8);
PXA168_DEVICE(keypad, "pxa27x-keypad", -1, KEYPAD, 0xd4012000, 0x4c);
PXA168_DEVICE(eth, "pxa168-eth", -1, MFU, 0xc0800000, 0x0fff);
+
+struct resource pxa168_usb_host_resources[] = {
+ /* USB Host conroller register base */
+ [0] = {
+ .start = 0xd4209000,
+ .end = 0xd4209000 + 0x200,
+ .flags = IORESOURCE_MEM,
+ .name = "pxa168-usb-host",
+ },
+ /* USB PHY register base */
+ [1] = {
+ .start = 0xd4206000,
+ .end = 0xd4206000 + 0xff,
+ .flags = IORESOURCE_MEM,
+ .name = "pxa168-usb-phy",
+ },
+ [2] = {
+ .start = IRQ_PXA168_USB2,
+ .end = IRQ_PXA168_USB2,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static u64 pxa168_usb_host_dmamask = DMA_BIT_MASK(32);
+struct platform_device pxa168_device_usb_host = {
+ .name = "pxa168-ehci",
+ .id = -1,
+ .dev = {
+ .dma_mask = &pxa168_usb_host_dmamask,
+ .coherent_dma_mask = DMA_BIT_MASK(32),
+ },
+
+ .num_resources = ARRAY_SIZE(pxa168_usb_host_resources),
+ .resource = pxa168_usb_host_resources,
+};
+
+int __init pxa168_add_usb_host(struct pxa168_usb_pdata *pdata)
+{
+ pxa168_device_usb_host.dev.platform_data = pdata;
+ return platform_device_register(&pxa168_device_usb_host);
+}

arch/arm/mach-omap2/Makefile

View file
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index f343365..7317a2b 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -242,14 +242,11 @@ obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o \
obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o \
hsmmc.o
obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \
- hsmmc.o \
- omap_phy_internal.o
+ hsmmc.o
obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \
- hsmmc.o \
- omap_phy_internal.o
+ hsmmc.o
-obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o \
- omap_phy_internal.o \
+obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o
obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o
@@ -260,6 +257,8 @@ obj-$(CONFIG_MACH_TI8168EVM) += board-ti8168evm.o
usbfs-$(CONFIG_ARCH_OMAP_OTG) := usb-fs.o
obj-y += $(usbfs-m) $(usbfs-y)
obj-y += usb-musb.o
+obj-y += omap_phy_internal.o
+
obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o
obj-y += usb-host.o

arch/arm/mach-shmobile/board-mackerel.c

View file
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 17c19dc..802aa58 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -810,6 +810,7 @@ static struct usbhs_private usbhs1_private = {
},
.driver_param = {
.buswait_bwait = 4,
+ .has_otg = 1,
.pipe_type = usbhs1_pipe_cfg,
.pipe_size = ARRAY_SIZE(usbhs1_pipe_cfg),
.d0_tx_id = SHDMA_SLAVE_USB1_TX,

drivers/usb/Kconfig

View file
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 48f1781..4ac2750 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -12,6 +12,11 @@ menuconfig USB_SUPPORT
if USB_SUPPORT
+config USB_COMMON
+ tristate
+ default y
+ depends on USB || USB_GADGET
+
# Host-side USB depends on having a host controller
# NOTE: dummy_hcd is always an option, but it's ignored here ...
# NOTE: SL-811 option should be board-specific ...
@@ -19,6 +24,7 @@ config USB_ARCH_HAS_HCD
boolean
default y if USB_ARCH_HAS_OHCI
default y if USB_ARCH_HAS_EHCI
+ default y if USB_ARCH_HAS_XHCI
default y if PCMCIA && !M32R # sl811_cs
default y if ARM # SL-811
default y if BLACKFIN # SL-811
@@ -54,7 +60,7 @@ config USB_ARCH_HAS_OHCI
# some non-PCI hcds implement EHCI
config USB_ARCH_HAS_EHCI
boolean
- default y if PPC_83xx
+ default y if FSL_SOC
default y if PPC_MPC512x
default y if SOC_AU1200
default y if ARCH_IXP4XX
@@ -69,6 +75,12 @@ config USB_ARCH_HAS_EHCI
default y if ARCH_MSM
default y if MICROBLAZE
default y if SPARC_LEON
+ default y if ARCH_MMP
+ default PCI
+
+# some non-PCI HCDs implement xHCI
+config USB_ARCH_HAS_XHCI
+ boolean
default PCI
# ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
@@ -110,6 +122,8 @@ config USB
source "drivers/usb/core/Kconfig"
+source "drivers/usb/dwc3/Kconfig"
+
source "drivers/usb/mon/Kconfig"
source "drivers/usb/wusbcore/Kconfig"

drivers/usb/Makefile

View file
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index 30ddf8d..75eca76 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -6,6 +6,8 @@
obj-$(CONFIG_USB) += core/
+obj-$(CONFIG_USB_DWC3) += dwc3/
+
obj-$(CONFIG_USB_MON) += mon/
obj-$(CONFIG_PCI) += host/
@@ -51,3 +53,5 @@ obj-$(CONFIG_USB_MUSB_HDRC) += musb/
obj-$(CONFIG_USB_RENESAS_USBHS) += renesas_usbhs/
obj-$(CONFIG_USB_OTG_UTILS) += otg/
obj-$(CONFIG_USB_GADGET) += gadget/
+
+obj-$(CONFIG_USB_COMMON) += usb-common.o

drivers/usb/class/cdc-acm.c

View file
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index dac7676..3ec6699 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1058,11 +1058,11 @@ made_compressed_probe:
goto alloc_fail;
}
- ctrlsize = le16_to_cpu(epctrl->wMaxPacketSize);
- readsize = le16_to_cpu(epread->wMaxPacketSize) *
+ ctrlsize = usb_endpoint_maxp(epctrl);
+ readsize = usb_endpoint_maxp(epread) *
(quirks == SINGLE_RX_URB ? 1 : 2);
acm->combined_interfaces = combined_interfaces;
- acm->writesize = le16_to_cpu(epwrite->wMaxPacketSize) * 20;
+ acm->writesize = usb_endpoint_maxp(epwrite) * 20;
acm->control = control_interface;
acm->data = data_interface;
acm->minor = minor;
@@ -1534,6 +1534,9 @@ static const struct usb_device_id acm_ids[] = {
{ NOKIA_PCSUITE_ACM_INFO(0x03cd), }, /* Nokia C7 */
{ SAMSUNG_PCSUITE_ACM_INFO(0x6651), }, /* Samsung GTi8510 (INNOV8) */
+ /* Support for Owen devices */
+ { USB_DEVICE(0x03eb, 0x0030), }, /* Owen SI30 */
+
/* NOTE: non-Nokia COMM/ACM/0xff is likely MSFT RNDIS... NOT a modem! */
/* Support Lego NXT using pbLua firmware */

drivers/usb/class/cdc-wdm.c

View file
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
index 2b9ff51..1d26a71 100644
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -682,7 +682,7 @@ next_desc:
if (!ep || !usb_endpoint_is_int_in(ep))
goto err;
- desc->wMaxPacketSize = le16_to_cpu(ep->wMaxPacketSize);
+ desc->wMaxPacketSize = usb_endpoint_maxp(ep);
desc->bMaxPacketSize0 = udev->descriptor.bMaxPacketSize0;
desc->orq = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL);

drivers/usb/class/usbtmc.c

View file
diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
index 3f94ac3..12cf5e7 100644
--- a/drivers/usb/class/usbtmc.c
+++ b/drivers/usb/class/usbtmc.c
@@ -186,8 +186,7 @@ static int usbtmc_ioctl_abort_bulk_in(struct usbtmc_device_data *data)
for (n = 0; n < current_setting->desc.bNumEndpoints; n++)
if (current_setting->endpoint[n].desc.bEndpointAddress ==
data->bulk_in)
- max_size = le16_to_cpu(current_setting->endpoint[n].
- desc.wMaxPacketSize);
+ max_size = usb_endpoint_maxp(&current_setting->endpoint[n].desc);
if (max_size == 0) {
dev_err(dev, "Couldn't get wMaxPacketSize\n");
@@ -636,7 +635,7 @@ static int usbtmc_ioctl_clear(struct usbtmc_device_data *data)
for (n = 0; n < current_setting->desc.bNumEndpoints; n++) {
desc = &current_setting->endpoint[n].desc;
if (desc->bEndpointAddress == data->bulk_in)
- max_size = le16_to_cpu(desc->wMaxPacketSize);
+ max_size = usb_endpoint_maxp(desc);
}
if (max_size == 0) {

drivers/usb/core/config.c

View file
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 26678ca..f4bdd0c 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -124,9 +124,9 @@ static void usb_parse_ss_endpoint_companion(struct device *ddev, int cfgno,
if (usb_endpoint_xfer_isoc(&ep->desc))
max_tx = (desc->bMaxBurst + 1) * (desc->bmAttributes + 1) *
- le16_to_cpu(ep->desc.wMaxPacketSize);
+ usb_endpoint_maxp(&ep->desc);
else if (usb_endpoint_xfer_int(&ep->desc))
- max_tx = le16_to_cpu(ep->desc.wMaxPacketSize) *
+ max_tx = usb_endpoint_maxp(&ep->desc) *
(desc->bMaxBurst + 1);
else
max_tx = 999999;
@@ -241,7 +241,7 @@ static int usb_parse_endpoint(struct device *ddev, int cfgno, int inum,
cfgno, inum, asnum, d->bEndpointAddress);
endpoint->desc.bmAttributes = USB_ENDPOINT_XFER_INT;
endpoint->desc.bInterval = 1;
- if (le16_to_cpu(endpoint->desc.wMaxPacketSize) > 8)
+ if (usb_endpoint_maxp(&endpoint->desc) > 8)
endpoint->desc.wMaxPacketSize = cpu_to_le16(8);
}
@@ -254,7 +254,7 @@ static int usb_parse_endpoint(struct device *ddev, int cfgno, int inum,
&& usb_endpoint_xfer_bulk(d)) {
unsigned maxp;
- maxp = le16_to_cpu(endpoint->desc.wMaxPacketSize) & 0x07ff;
+ maxp = usb_endpoint_maxp(&endpoint->desc) & 0x07ff;
if (maxp != 512)
dev_warn(ddev, "config %d interface %d altsetting %d "
"bulk endpoint 0x%X has invalid maxpacket %d\n",
@@ -755,3 +755,106 @@ err2:
dev_err(ddev, "out of memory\n");
return result;
}
+
+void usb_release_bos_descriptor(struct usb_device *dev)
+{
+ if (dev->bos) {
+ kfree(dev->bos->desc);
+ kfree(dev->bos);
+ dev->bos = NULL;
+ }
+}
+
+/* Get BOS descriptor set */
+int usb_get_bos_descriptor(struct usb_device *dev)
+{
+ struct device *ddev = &dev->dev;
+ struct usb_bos_descriptor *bos;
+ struct usb_dev_cap_header *cap;
+ unsigned char *buffer;
+ int length, total_len, num, i;
+ int ret;
+
+ bos = kzalloc(sizeof(struct usb_bos_descriptor), GFP_KERNEL);
+ if (!bos)
+ return -ENOMEM;
+
+ /* Get BOS descriptor */
+ ret = usb_get_descriptor(dev, USB_DT_BOS, 0, bos, USB_DT_BOS_SIZE);
+ if (ret < USB_DT_BOS_SIZE) {
+ dev_err(ddev, "unable to get BOS descriptor\n");
+ if (ret >= 0)
+ ret = -ENOMSG;
+ kfree(bos);
+ return ret;
+ }
+
+ length = bos->bLength;
+ total_len = le16_to_cpu(bos->wTotalLength);
+ num = bos->bNumDeviceCaps;
+ kfree(bos);
+ if (total_len < length)
+ return -EINVAL;
+
+ dev->bos = kzalloc(sizeof(struct usb_host_bos), GFP_KERNEL);
+ if (!dev->bos)
+ return -ENOMEM;
+
+ /* Now let's get the whole BOS descriptor set */
+ buffer = kzalloc(total_len, GFP_KERNEL);
+ if (!buffer) {
+ ret = -ENOMEM;
+ goto err;
+ }
+ dev->bos->desc = (struct usb_bos_descriptor *)buffer;
+
+ ret = usb_get_descriptor(dev, USB_DT_BOS, 0, buffer, total_len);
+ if (ret < total_len) {
+ dev_err(ddev, "unable to get BOS descriptor set\n");
+ if (ret >= 0)
+ ret = -ENOMSG;
+ goto err;
+ }
+ total_len -= length;
+
+ for (i = 0; i < num; i++) {
+ buffer += length;
+ cap = (struct usb_dev_cap_header *)buffer;
+ length = cap->bLength;
+
+ if (total_len < length)
+ break;
+ total_len -= length;
+
+ if (cap->bDescriptorType != USB_DT_DEVICE_CAPABILITY) {
+ dev_warn(ddev, "descriptor type invalid, skip\n");
+ continue;
+ }
+
+ switch (cap->bDevCapabilityType) {
+ case USB_CAP_TYPE_WIRELESS_USB:
+ /* Wireless USB cap descriptor is handled by wusb */
+ break;
+ case USB_CAP_TYPE_EXT:
+ dev->bos->ext_cap =
+ (struct usb_ext_cap_descriptor *)buffer;
+ break;
+ case USB_SS_CAP_TYPE:
+ dev->bos->ss_cap =
+ (struct usb_ss_cap_descriptor *)buffer;
+ break;
+ case CONTAINER_ID_TYPE:
+ dev->bos->ss_id =
+ (struct usb_ss_container_id_descriptor *)buffer;
+ break;
+ default:
+ break;
+ }
+ }
+
+ return 0;
+
+err:
+ usb_release_bos_descriptor(dev);
+ return ret;
+}

drivers/usb/core/devices.c

View file
diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
index 0149c09..d956965 100644
--- a/drivers/usb/core/devices.c
+++ b/drivers/usb/core/devices.c
@@ -190,7 +190,7 @@ static char *usb_dump_endpoint_descriptor(int speed, char *start, char *end,

This diff is incomplete. Download the complete patch.

drivers/usb/core/devio.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/endpoint.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hcd-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/hub.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/message.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/quirks.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/urb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/core/usb.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/core.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/debug.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/debugfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/dwc3-omap.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/dwc3-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/ep0.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/gadget.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/gadget.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/dwc3/io.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/acm_ms.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/amd5536udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/amd5536udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/at91_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/at91_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/atmel_usba_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/cdc2.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/ci13xxx_msm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/ci13xxx_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/composite.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/config.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/dbgp.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/dummy_hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/epautoconf.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/ether.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_audio.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_ecm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_eem.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_fs.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_hid.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_loopback.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_mass_storage.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_midi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_ncm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_obex.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_phonet.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_rndis.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_sourcesink.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_subset.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_uvc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/f_uvc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/file_storage.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/fsl_qe_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/fsl_udc_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/fusb300_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/fusb300_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/g_ffs.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/gadget_chips.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/gmidi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/hid.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/imx_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/imx_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/inode.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/langwell_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/langwell_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/m66592-udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/m66592-udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/mass_storage.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/multi.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/mv_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/mv_udc_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/mv_udc_phy.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/ncm.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/ndis.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/net2272.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/net2280.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/net2280.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/omap_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/pch_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/printer.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/pxa25x_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/pxa25x_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/pxa27x_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/pxa27x_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/r8a66597-udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/r8a66597-udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/s3c-hsotg.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/s3c-hsudc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/s3c2410_udc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/s3c2410_udc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/storage_common.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/u_ether.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/u_ether.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/u_serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/udc-core.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/uvc.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/uvc_queue.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/uvc_v4l2.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/uvc_video.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/webcam.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/gadget/zero.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-ath79.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-au1xxx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-dbg.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-fsl.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-hub.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-mxc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-octeon.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-omap.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-orion.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-ps3.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-pxa168.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-q.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-s5p.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-sched.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-sh.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-spear.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-tegra.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-vt8500.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci-xls.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ehci.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/fhci-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/fhci-sched.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/imx21-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/isp116x-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/isp1362-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/isp1760-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/isp1760-hcd.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/isp1760-if.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ath79.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-au1xxx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-da8xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ep93xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-hub.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-octeon.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-omap.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-omap3.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-pnx4008.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-pnx8550.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ppc-of.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ppc-soc.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ps3.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-pxa27x.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-q.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-s3c2410.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-sa1111.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-sh.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-sm501.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-spear.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-ssb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-tmio.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/ohci-xls.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/r8a66597-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/sl811-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/uhci-hcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/uhci-q.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-ext-caps.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-hub.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-mem.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci-ring.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/host/xhci.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/adutux.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/ftdi-elan.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/idmouse.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/iowarrior.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/ldusb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/legousbtower.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/usblcd.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/usbled.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/misc/usbtest.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/mon/mon_bin.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/musb/musb_gadget.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/musb/musb_gadget_ep0.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/musb/musb_host.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/musb/musbhsdma.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/otg/isp1301_omap.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/otg/twl6030-usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/common.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/common.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/fifo.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/fifo.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/mod.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/mod.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/mod_gadget.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/mod_host.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/pipe.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/renesas_usbhs/pipe.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ftdi_sio.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ftdi_sio_ids.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/io_edgeport.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/ipw.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/opticon.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/option.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/pl2303.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/pl2303.h

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/qcserial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/symbolserial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/serial/usb-serial.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/realtek_cr.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/transport.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/storage/usb.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/usb-common.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/usb-skeleton.c

View file

This diff is incomplete. Download the complete patch.

drivers/usb/wusbcore/wa-hc.c

View file

This diff is incomplete. Download the complete patch.

include/linux/platform_data/dwc3-omap.h

View file

This diff is incomplete. Download the complete patch.

include/linux/platform_data/mv_usb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/sched.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/ch9.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/gadget.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/hcd.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/r8a66597.h

View file

This diff is incomplete. Download the complete patch.

include/linux/usb/renesas_usbhs.h

View file

This diff is incomplete. Download the complete patch.

kernel/signal.c

View file

This diff is incomplete. Download the complete patch.