From 1053c4a4b8fcbd28386e80347e7c82d4d617e352 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 5 Oct 2023 10:51:11 +0200 Subject: [PATCH] Revert "usb: gadget: uvc: stop pump thread on video disable" This reverts commit 3a63f86c6a6cb0601f0563a81574745da2979e3b. Based on review comments, it was applied too soon and needs more work. Reported-by: Laurent Pinchart Link: https://lore.kernel.org/r/20231005081716.GA13853@pendragon.ideasonboard.com Cc: Michael Grzeschik Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/function/uvc_video.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c index 4b68a3a9815d7..91af3b1ef0d41 100644 --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c @@ -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);