• Andiry Xu's avatar
    xHCI: test USB2 software LPM · 9574323c
    Andiry Xu authored
    This patch tests USB2 software LPM for a USB2 LPM-capable device.
    
    When a lpm-capable device is addressed, if the host also supports software
    LPM, apply a test by putting the device into L1 state and resume it to see
    if the device can do L1 suspend/resume successfully.
    
    If the device fails to enter L1 or resume from L1 state, it may not
    function normally and usbcore may disconnect and re-enumerate it. In this
    case, store the device's Vid and Pid information, make sure the host will
    not test LPM for it twice.
    
    The test result is per device/host. Some devices claim to be lpm-capable,
    but fail to enter L1 or resume. So the test is necessary.
    
    The xHCI 1.0 errata has modified the USB2.0 LPM implementation. It redefines
    the HIRD field to BESL, and adds another register Port Hardware LPM Control
    (PORTHLPMC). However, this should not affect the LPM behavior on xHC which
    does not implement 1.0 errata.
    
    USB2.0 LPM errata defines a new bit BESL in the device's USB 2.0 extension
    descriptor. If the device reports it uses BESL, driver should use BESL
    instead of HIRD for it.
    Signed-off-by: default avatarAndiry Xu <andiry.xu@amd.com>
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    9574323c
xhci.h 60.2 KB