• Sarah Sharp's avatar
    usb/xhci: Change how we indicate a host supports Link PM. · 25cd2882
    Sarah Sharp authored
    The xHCI driver currently uses a USB core internal field,
    udev->lpm_capable, to indicate the xHCI driver knows how to calculate
    the LPM timeout values.  If this value is set for the host controller
    udev, it means Link PM can be enabled for child devices under that host.
    
    Change the code so the xHCI driver isn't mucking with USB core internal
    fields.  Instead, indicate the xHCI driver doesn't support Link PM on
    this host by clearing the U1 and U2 exit latencies in the roothub
    SuperSpeed Extended Capabilities BOS descriptor.
    
    The code to check for the roothub setting U1 and U2 exit latencies to
    zero will also disable LPM for external devices that do that same.  This
    was already effectively done with commit
    ae8963ad "usb: Don't enable LPM if the
    exit latency is zero."  Leave that code in place, so that if a device
    sets one exit latency value to zero, but the other is set to a valid
    value, LPM is only enabled for the U1 or U2 state that had the valid
    value.  This is the same behavior the code had before.
    
    Also, change messages about missing Link PM information from warning
    level to info level.  Only print a warning about the first device that
    doesn't support LPM, to avoid log spam.  Further, cleanup some
    unnecessary line breaks to help people to grep for the error messages.
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    25cd2882
xhci-hub.c 35.5 KB