• Thinh Nguyen's avatar
    usb: core: hub: Disable hub-initiated U1/U2 · b0084c1b
    Thinh Nguyen authored
    [ Upstream commit 56175929 ]
    
    If the device rejects the control transfer to enable device-initiated
    U1/U2 entry, then the device will not initiate U1/U2 transition. To
    improve the performance, the downstream port should not initate
    transition to U1/U2 to avoid the delay from the device link command
    response (no packet can be transmitted while waiting for a response from
    the device). If the device has some quirks and does not implement U1/U2,
    it may reject all the link state change requests, and the downstream
    port may resend and flood the bus with more requests. This will affect
    the device performance even further. This patch disables the
    hub-initated U1/U2 if the device-initiated U1/U2 entry fails.
    
    Reference: USB 3.2 spec 7.2.4.2.3
    Signed-off-by: default avatarThinh Nguyen <thinhn@synopsys.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    b0084c1b
hub.c 170 KB