• Stephen Warren's avatar
    usb: dwc2: fix bulk transfers · fc909c05
    Stephen Warren authored
    When I created wait_for_chhltd(), I noticed that some instances of the
    code it replaced expected the ACK bit to be set and others didn't. I
    assumed this was an accidental inconsistency in the code, so wrote
    wait_for_chhltd() to always expect ACK to be set. This code appeared to
    work correctly for both enumeration of USB keyboards and operation of
    USB Ethernet devices. However, this change broke USB Mass Storage (at
    least my USB SD card reader). This change reverts to exactly the
    original behaviour. I'm not sure why the ACK bit isn't always set
    (perhaps a quirk in the USB HW or DWC2 controller), but the code works
    this way!
    Fixes: 5be4ca7d6ac8 ("usb: dwc2: unify waiting for transfer completion")
    Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
dwc2.c 23.8 KB