• Lu Baolu's avatar
    usb: dwc3: fix Clear Stall EP command failure · 5e6c88d2
    Lu Baolu authored
    Commit 50c763f8 ("usb: dwc3: Set the ClearPendIN bit on Clear
    Stall EP command") sets ClearPendIN bit for all IN endpoints of
    v2.60a+ cores. This causes ClearStall command fails on 2.60+ cores
    operating in HighSpeed mode.
    
    In page 539 of 2.60a specification:
    
    "When issuing Clear Stall command for IN endpoints in SuperSpeed
    mode, the software must set the "ClearPendIN" bit to '1' to
    clear any pending IN transcations, so that the device does not
    expect any ACK TP from the host for the data sent earlier."
    
    It's obvious that we only need to apply this rule to those IN
    endpoints that currently operating in SuperSpeed mode.
    
    Fixes: 50c763f8 ("usb: dwc3: Set the ClearPendIN bit on Clear Stall EP command")
    Cc: <stable@vger.kernel.org> # v4.7+
    Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    5e6c88d2
gadget.c 73.9 KB