• T
    usb: core: hub: Disable hub-initiated U1/U2 · c7d957f5
    Thinh Nguyen 提交于
    [ Upstream commit 561759292774707b71ee61aecc07724905bb7ef1 ]
    
    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: NThinh Nguyen <thinhn@synopsys.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NSasha Levin <sashal@kernel.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    c7d957f5
hub.c 170.4 KB