Revert "usb: gadget: uvc: stop pump thread on video disable"
This reverts commit 3a63f86c6a
.
Based on review comments, it was applied too soon and needs more work.
Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://lore.kernel.org/r/20231005081716.GA13853@pendragon.ideasonboard.com
Cc: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
dddc00f255
commit
1053c4a4b8
@ -384,14 +384,13 @@ static void uvcg_video_pump(struct work_struct *work)
|
||||
struct uvc_video_queue *queue = &video->queue;
|
||||
/* video->max_payload_size is only set when using bulk transfer */
|
||||
bool is_bulk = video->max_payload_size;
|
||||
struct uvc_device *uvc = video->uvc;
|
||||
struct usb_request *req = NULL;
|
||||
struct uvc_buffer *buf;
|
||||
unsigned long flags;
|
||||
bool buf_done;
|
||||
int ret;
|
||||
|
||||
while (video->ep->enabled && uvc->state == UVC_STATE_STREAMING) {
|
||||
while (video->ep->enabled) {
|
||||
/*
|
||||
* Retrieve the first available USB request, protected by the
|
||||
* request lock.
|
||||
@ -489,7 +488,6 @@ static void uvcg_video_pump(struct work_struct *work)
|
||||
*/
|
||||
int uvcg_video_enable(struct uvc_video *video, int enable)
|
||||
{
|
||||
struct uvc_device *uvc = video->uvc;
|
||||
unsigned int i;
|
||||
int ret;
|
||||
|
||||
@ -500,8 +498,6 @@ int uvcg_video_enable(struct uvc_video *video, int enable)
|
||||
}
|
||||
|
||||
if (!enable) {
|
||||
uvc->state = UVC_STATE_CONNECTED;
|
||||
|
||||
cancel_work_sync(&video->pump);
|
||||
uvcg_queue_cancel(&video->queue, 0);
|
||||
|
||||
@ -527,8 +523,6 @@ int uvcg_video_enable(struct uvc_video *video, int enable)
|
||||
video->encode = video->queue.use_sg ?
|
||||
uvc_video_encode_isoc_sg : uvc_video_encode_isoc;
|
||||
|
||||
uvc->state = UVC_STATE_STREAMING;
|
||||
|
||||
video->req_int_count = 0;
|
||||
|
||||
queue_work(video->async_wq, &video->pump);
|
||||
|
Loading…
Reference in New Issue
Block a user