• Roger Quadros's avatar
    usb: xhci: bInterval quirk for TI TUSB73x0 · 69307ccb
    Roger Quadros authored
    As per [1] issue #4,
    "The periodic EP scheduler always tries to schedule the EPs
    that have large intervals (interval equal to or greater than
    128 microframes) into different microframes. So it maintains
    an internal counter and increments for each large interval
    EP added. When the counter is greater than 128, the scheduler
    rejects the new EP. So when the hub re-enumerated 128 times,
    it triggers this condition."
    
    This results in Bandwidth error when devices with periodic
    endpoints (ISO/INT) having bInterval > 7 are plugged and
    unplugged several times on a TUSB73x0 XHCI host.
    
    Workaround this issue by limiting the bInterval to 7
    (i.e. interval to 6) for High-speed or faster periodic endpoints.
    
    [1] - http://www.ti.com/lit/er/sllz076/sllz076.pdf
    
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
    Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    69307ccb
xhci-mem.c 77 KB