Skip to content

Commit adc292d

Browse files
mgrzeschikgregkh
authored andcommitted
usb: gadget: uvc: wake pump everytime we update the free list
Since the req_free list will updated if enqueuing one request was not possible it will be added back to the free list. With every available free request in the queue it is a valid case for the pump worker to use it and continue the pending bufferdata into requests for the req_ready list. Fixes: 6acba03 ("usb:gadget:uvc Do not use worker thread to pump isoc usb requests") Signed-off-by: Michael Grzeschik <[email protected]> Link: https://lore.kernel.org/r/20240403-uvc_request_length_by_interval-v7-1-e224bb1035f0@pengutronix.de Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent a79f16e commit adc292d

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/usb/gadget/function/uvc_video.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,10 @@ uvc_video_complete(struct usb_ep *ep, struct usb_request *req)
480480
* up later.
481481
*/
482482
list_add_tail(&to_queue->list, &video->req_free);
483+
/*
484+
* There is a new free request - wake up the pump.
485+
*/
486+
queue_work(video->async_wq, &video->pump);
483487
}
484488

485489
spin_unlock_irqrestore(&video->req_lock, flags);

0 commit comments

Comments
 (0)