Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1be025d3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
  ...
parents 2d03423b a2c76b83
Loading
Loading
Loading
Loading
+46 −0
Original line number Original line Diff line number Diff line
What:		/sys/bus/pci/drivers/ehci_hcd/.../companion
		/sys/bus/usb/devices/usbN/../companion
Date:		January 2007
KernelVersion:	2.6.21
Contact:	Alan Stern <stern@rowland.harvard.edu>
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).
+15 −0
Original line number Original line Diff line number Diff line
@@ -142,3 +142,18 @@ Description:
		such devices.
		such devices.
Users:
Users:
		usb_modeswitch
		usb_modeswitch

What:		/sys/bus/usb/devices/.../power/usb2_hardware_lpm
Date:		September 2011
Contact:	Andiry Xu <andiry.xu@amd.com>
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.
+45 −0
Original line number Original line Diff line number Diff line

 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).
+26 −0
Original line number Original line Diff line number Diff line
@@ -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
resume as soon as the system suspend is complete.  Or the remote
wakeup may fail and get lost.  Which outcome occurs depends on timing
wakeup may fail and get lost.  Which outcome occurs depends on timing
and on the hardware and firmware design.
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.
+8 −0
Original line number Original line Diff line number Diff line
@@ -2136,6 +2136,14 @@ M: Matthew Garrett <mjg59@srcf.ucam.org>
S:	Maintained
S:	Maintained
F:	drivers/platform/x86/dell-wmi.c
F:	drivers/platform/x86/dell-wmi.c


DESIGNWARE USB3 DRD IP DRIVER
M:	Felipe Balbi <balbi@ti.com>
L:	linux-usb@vger.kernel.org
L:	linux-omap@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git
S:	Maintained
F:	drivers/usb/dwc3/

DEVICE NUMBER REGISTRY
DEVICE NUMBER REGISTRY
M:	Torben Mathiasen <device@lanana.org>
M:	Torben Mathiasen <device@lanana.org>
W:	http://lanana.org/docs/device-list/index.html
W:	http://lanana.org/docs/device-list/index.html
Loading