• Sarah Sharp's avatar
    USB: xhci: Add quirk for Fresco Logic xHCI hardware. · eac3a206
    Sarah Sharp authored
    This Fresco Logic xHCI host controller chip revision puts bad data into
    the output endpoint context after a Reset Endpoint command.  It needs a
    Configure Endpoint command (instead of a Set TR Dequeue Pointer command)
    after the reset endpoint command.
    
    Set up the input context before issuing the Reset Endpoint command so we
    don't copy bad data from the output endpoint context.  The HW also can't
    handle two commands queued at once, so submit the TRB for the Configure
    Endpoint command in the event handler for the Reset Endpoint command.
    
    Devices that stall on control endpoints before a configuration is selected
    will not work under this Fresco Logic xHCI host controller revision.
    
    This patch is for prototype hardware that will be given to other companies
    for evaluation purposes only, and should not reach consumer hands.  Fresco
    Logic's next chip rev should have this bug fixed.
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    eac3a206
xhci-hcd.c 50.1 KB