summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-06 15:21:02 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-06 15:21:02 -0700
commit1c83d94ff646001f9ee83f0330a3933b55660927 (patch)
tree13733a673705e1fba9371eb328b15b7c2e81eea2 /include
parent3a57aa8161a06133bc3142327f3b2f1a9a50f6c8 (diff)
parent17f34867e98d2fb0c03918faab79efb989fa134b (diff)
downloadlinux-1c83d94ff646001f9ee83f0330a3933b55660927.tar.bz2
Merge tag 'for-usb-next-2013-06-06' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-next
Sarah writes: xHCI: USB 2.0 Link PM and misc cleanup patches Hi Greg, Here's six patches to be queued for 3.11. The first four add support for a new type of host hardware-managed USB 2.0 Link Power Management. Hosts with BESL support, including Intel Haswell ULT systems, will now be able to have USB 2.0 devices go into the lower power link state (L1) in between packets. These patches have been tested on Haswell ULT platforms with USB 2.0 webcams that support Link PM. The other two patches are clean up. One from Julius clarifies the xHCI endpoint context debugging to make it consistent with standard endpoint addresses, instead of xHCI endpoint context indexes. The one from Alex changes the xHCI driver to be consistent about passing a void pointer to the xHCI IRQ handler. Sarah Sharp
Diffstat (limited to 'include')
-rw-r--r--include/linux/usb.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h
index b424e5318f20..a232b7ece1f6 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -394,6 +394,22 @@ enum usb_port_connect_type {
};
/*
+ * USB 2.0 Link Power Management (LPM) parameters.
+ */
+struct usb2_lpm_parameters {
+ /* Best effort service latency indicate how long the host will drive
+ * resume on an exit from L1.
+ */
+ unsigned int besl;
+
+ /* Timeout value in microseconds for the L1 inactivity (LPM) timer.
+ * When the timer counts to zero, the parent hub will initiate a LPM
+ * transition to L1.
+ */
+ int timeout;
+};
+
+/*
* USB 3.0 Link Power Management (LPM) parameters.
*
* PEL and SEL are USB 3.0 Link PM latencies for device-initiated LPM exit.
@@ -468,6 +484,7 @@ struct usb3_lpm_parameters {
* @wusb: device is Wireless USB
* @lpm_capable: device supports LPM
* @usb2_hw_lpm_capable: device can perform USB2 hardware LPM
+ * @usb2_hw_lpm_besl_capable: device can perform USB2 hardware BESL LPM
* @usb2_hw_lpm_enabled: USB2 hardware LPM enabled
* @usb3_lpm_enabled: USB3 hardware LPM enabled
* @string_langid: language ID for strings
@@ -487,6 +504,7 @@ struct usb3_lpm_parameters {
* specific data for the device.
* @slot_id: Slot ID assigned by xHCI
* @removable: Device can be physically removed from this port
+ * @l1_params: best effor service latency for USB2 L1 LPM state, and L1 timeout.
* @u1_params: exit latencies for USB3 U1 LPM state, and hub-initiated timeout.
* @u2_params: exit latencies for USB3 U2 LPM state, and hub-initiated timeout.
* @lpm_disable_count: Ref count used by usb_disable_lpm() and usb_enable_lpm()
@@ -538,6 +556,7 @@ struct usb_device {
unsigned wusb:1;
unsigned lpm_capable:1;
unsigned usb2_hw_lpm_capable:1;
+ unsigned usb2_hw_lpm_besl_capable:1;
unsigned usb2_hw_lpm_enabled:1;
unsigned usb3_lpm_enabled:1;
int string_langid;
@@ -566,6 +585,7 @@ struct usb_device {
struct wusb_dev *wusb_dev;
int slot_id;
enum usb_device_removable removable;
+ struct usb2_lpm_parameters l1_params;
struct usb3_lpm_parameters u1_params;
struct usb3_lpm_parameters u2_params;
unsigned lpm_disable_count;