xhci: Enable LPM support only for hardwired or BESL devices
authorMathias Nyman <mathias.nyman@linux.intel.com>
Mon, 30 Sep 2013 14:26:31 +0000 (17:26 +0300)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Wed, 16 Oct 2013 19:24:20 +0000 (12:24 -0700)
commit890dae88672175f1d39f6105444d9bdc71c89258
tree12e22d8a15ad64007b16ff46d94dabb21e9297da
parentde68bab4fa96014cfaa6fcbcdb9750e32969fb86
xhci: Enable LPM support only for hardwired or BESL devices

Some usb3 devices falsely claim they support usb2 hardware Link PM
when connected to a usb2 port. We only trust hardwired devices
or devices with the later BESL LPM support to be LPM enabled as default.

[Note: Sarah re-worked the original patch to move the code into the USB
core, and updated it to check whether the USB device supports BESL,
instead of checking if the xHCI port it's connected to supports BESL
encoding.]

This patch should be backported to kernels as old as 3.11, that
contain the commit a558ccdcc71c7770c5e80c926a31cfe8a3892a09 "usb: xhci:
add USB2 Link power management BESL support".  Without this fix, some
USB 3.0 devices will not enumerate or work properly under USB 2.0 ports
on Haswell-ULT systems.

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@vger.kernel.org
drivers/usb/core/hub.c