• Douglas Anderson's avatar
    usb: dwc2: host: Giveback URB in tasklet context · 8add17cf
    Douglas Anderson authored
    In commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet
    context") support was added to give back the URB in tasklet context.
    Let's take advantage of this in dwc2.
    
    This speeds up the dwc2 interrupt handler considerably.
    
    Note that this requires the change ("usb: dwc2: host: Add a delay before
    releasing periodic bandwidth") to come first.
    
    Note that, as per Alan Stern in
    <https://patchwork.kernel.org/patch/7555771/>, we also need to make sure
    that the extra delay before the device drivers submit more data doesn't
    break the scheduler.  At the moment the scheduler is pretty broken (see
    future patches) so it's hard to be 100% certain, but I have yet to see
    any new breakage introduced by this delay.  ...and speeding up interrupt
    processing for dwc2 is a huge deal because it means we've got a better
    chance of not missing SOF interrupts.  That means we've got an overall
    win here.
    
    Note that when playing USB audio and using a USB webcam and having
    several USB keyboards plugged in, the crackling on the USB audio device
    is noticably reduced with this patch.
    Acked-by: default avatarJohn Youn <johnyoun@synopsys.com>
    Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
    Tested-by: default avatarHeiko Stuebner <heiko@sntech.de>
    Tested-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
    8add17cf
hcd.c 92.2 KB