• Mathias Nyman's avatar
    xhci: split handling halted endpoints into two steps · 674f8438
    Mathias Nyman authored
    Don't queue both a reset endpoint command and a
    set TR deq command at once when handling a halted endpoint.
    
    split this into two steps.
    Initially only queue a reset endpoint command, and then if needed queue a
    set TR deq command in the reset endpoint handler.
    
    Note: This removes the RESET_EP_QUIRK handling which was added in
    commit ac9d8fe7 ("USB: xhci: Add quirk for Fresco Logic xHCI hardware.")
    
    This quirk was added in 2009 for prototype xHCI hardware meant for
    evaluation purposes only, and should not reach consumers.
    This hardware could not handle two commands queued at once, and had
    bad data in the output context after a reset endpoint command.
    
    After this patch two command are no longer queued at once, so that
    part is solved  in this rewrite, but the workaround for bad data in the
    output context solved by issuing an extra configure endpoint command is
    bluntly removed.
    
    Adding this workaround to the new rewrite just adds complexity, and I
    think it's time to let this quirk go.
    Print a debug message instead.
    Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20210129130044.206855-22-mathias.nyman@linux.intel.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    674f8438
xhci.c 160 KB