• Sarah Sharp's avatar
    xhci: Set L1 device slot on USB2 LPM enable/disable. · 58e21f73
    Sarah Sharp authored
    To enable USB 2.0 Link Power Management (LPM), the xHCI host controller
    needs the device slot ID to generate the device address used in L1 entry
    tokens.  That information is set in the L1 device slot ID field of the
    USB 2.0 LPM registers.
    
    Currently, the L1 device slot ID is overwritten when the xHCI driver
    initiates the software test of USB 2.0 Link PM in
    xhci_usb2_software_lpm_test.  It is never cleared when USB 2.0 Link PM
    is disabled for the device.  That should be harmless, because the
    Hardware LPM Enable (HLE) bit is cleared when USB 2.0 Link PM is
    disabled, so the host should not pay attention to the slot ID.
    
    This patch should have no effect on host behavior, but since
    xhci_usb2_software_lpm_test is going away in an upcoming bug fix patch,
    we need to move that code to the function that enables and disables USB
    2.0 Link PM.
    
    This patch should be backported to kernels as old as 3.11, that contain
    the commit a558ccdc "usb: xhci: add USB2
    Link power management BESL support".  The upcoming bug fix patch is also
    marked for that stable kernel.
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: stable@vger.kernel.org
    58e21f73
xhci.c 148 KB