• Brian Campbell's avatar
    xhci: Calculate old endpoints correctly on device reset · 567ddd57
    Brian Campbell authored
    commit 326124a0 upstream.
    
    When resetting a device the number of active TTs may need to be
    corrected by xhci_update_tt_active_eps, but the number of old active
    endpoints supplied to it was always zero, so the number of TTs and the
    bandwidth reserved for them was not updated, and could rise
    unnecessarily.
    
    This affected systems using Intel's Patherpoint chipset, which rely on
    software bandwidth checking.  For example, a Lenovo X230 would lose the
    ability to use ports on the docking station after enough suspend/resume
    cycles because the bandwidth calculated would rise with every cycle when
    a suitable device is attached.
    
    The correct number of active endpoints is calculated in the same way as
    in xhci_reserve_bandwidth.
    Signed-off-by: default avatarBrian Campbell <bacam@z273.org.uk>
    Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    567ddd57
xhci.c 146 KB