summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host
diff options
context:
space:
mode:
authorAvichal Rakesh <arakesh@google.com>2023-05-08 16:11:03 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-05-29 15:22:50 +0100
commitc3ff12a92bd7072170978b8b41c2fa41b038139a (patch)
tree7ce8984ca648d584807dec9ac7db0d40fbe66f26 /drivers/usb/host
parente5990469943c711cb00bfde6338d2add6c6d0bfe (diff)
downloadlinux-stable-c3ff12a92bd7072170978b8b41c2fa41b038139a.tar.gz
linux-stable-c3ff12a92bd7072170978b8b41c2fa41b038139a.tar.bz2
linux-stable-c3ff12a92bd7072170978b8b41c2fa41b038139a.zip
usb: gadget: uvc: queue empty isoc requests if no video buffer is available
ISOC transfers expect a certain cadence of requests being queued. Not keeping up with the expected rate of requests results in missed ISOC transfers (EXDEV). The application layer may or may not produce video frames to match this expectation, so uvc gadget driver must handle cases where the application is not queuing up buffers fast enough to fulfill ISOC requirements. Currently, uvc gadget driver waits for new video buffer to become available before queuing up usb requests. With this patch the gadget driver queues up 0 length usb requests whenever there are no video buffers available. The USB controller's complete callback is used as the limiter for how quickly the 0 length packets will be queued. Video buffers are still queued as soon as they become available. Link: https://lore.kernel.org/CAMHf4WKbi6KBPQztj9FA4kPvESc1fVKrC8G73-cs6tTeQby9=w@mail.gmail.com/ Signed-off-by: Avichal Rakesh <arakesh@google.com> Link: https://lore.kernel.org/r/20230508231103.1621375-1-arakesh@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host')
0 files changed, 0 insertions, 0 deletions