[SRU][j:linux-xilinx-zynqmp][PATCH 1/1] UBUNTU: SAUCE: Revert "uvcvideo: Prevent new URBs being processed at stream stop"

Wei-Lin Chang weilin.chang at canonical.com
Thu Jul 3 05:56:08 UTC 2025


From: Radhey Shyam Pandey <radhey.shyam.pandey at amd.com>

BugLink: https://bugs.launchpad.net/bugs/2115849

This reverts commit f4bcffae4e7415e02caedd6edefc2eb257caaf4c.

Downstream uvcvideo fixes were done to support reVISION design on Zynq
MPSoC. Last supported release was in 2018 and is no longer needed. To
syncup with mainline revert these fixes.

Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey at amd.com>
Message-ID: <1733477744-151234-2-git-send-email-radhey.shyam.pandey at amd.com>
(cherry picked from git at github.com:Xilinx/linux-xlnx.git commit 45858a95051693de34573b6bbbced146e82aa872)
[rhythm16: Because we are cherry-picking a revert, the hash f4bcffae4e74
is the hash in linux-xlnx, we are undoing 0fb66b5eca03 in our repo.]
Signed-off-by: Wei-Lin Chang <weilin.chang at canonical.com>
---
 drivers/media/usb/uvc/uvc_queue.c | 13 -------------
 drivers/media/usb/uvc/uvcvideo.h  |  1 -
 2 files changed, 14 deletions(-)

diff --git a/drivers/media/usb/uvc/uvc_queue.c b/drivers/media/usb/uvc/uvc_queue.c
index ee2496a7cbcd..f1f58f2d820f 100644
--- a/drivers/media/usb/uvc/uvc_queue.c
+++ b/drivers/media/usb/uvc/uvc_queue.c
@@ -180,27 +180,14 @@ static int uvc_start_streaming(struct vb2_queue *vq, unsigned int count)
 static void uvc_stop_streaming(struct vb2_queue *vq)
 {
 	struct uvc_video_queue *queue = vb2_get_drv_priv(vq);
-	struct uvc_streaming *stream = uvc_queue_to_stream(queue);
 
 	lockdep_assert_irqs_enabled();
 
-	/* Prevent new buffers coming in. */
-	spin_lock_irq(&queue->irqlock);
-	queue->flags |= UVC_QUEUE_STOPPING;
-	spin_unlock_irq(&queue->irqlock);
-
-	/*
-	 * All pending work should be completed before disabling the stream, as
-	 * all URBs will be free'd during uvc_video_enable(s, 0).
-	 */
-	flush_workqueue(stream->async_wq);
-
 	if (vq->type != V4L2_BUF_TYPE_META_CAPTURE)
 		uvc_video_stop_streaming(uvc_queue_to_stream(queue));
 
 	spin_lock_irq(&queue->irqlock);
 	uvc_queue_return_buffers(queue, UVC_BUF_STATE_ERROR);
-	queue->flags &= ~UVC_QUEUE_STOPPING;
 	spin_unlock_irq(&queue->irqlock);
 }
 
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index f1c983c140a3..8d462f0b7dd3 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -452,7 +452,6 @@ struct uvc_buffer {
 
 #define UVC_QUEUE_DISCONNECTED		(1 << 0)
 #define UVC_QUEUE_DROP_CORRUPTED	(1 << 1)
-#define UVC_QUEUE_STOPPING		(1 << 2)
 
 struct uvc_video_queue {
 	struct vb2_queue queue;
-- 
2.43.0




More information about the kernel-team mailing list