brcm2708: update to latest patches from RPi Foundation
[openwrt/staging/dedeckeh.git] / target / linux / brcm2708 / patches-4.19 / 950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch b/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch
deleted file mode 100644 (file)
index 8161bb2..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 768ab361410487b05561de854a994a2888cd430a Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.org>
-Date: Fri, 28 Jun 2019 11:30:49 +0100
-Subject: [PATCH] Revert "media: vb2: Allow reqbufs(0) with "in use"
- MMAP buffers"
-
-This reverts commit a2c73e18c1f657de6d654f51effa0a94863abbd8.
-An alternative version was accepted upstream. Revert this patch to
-apply that one.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
----
- .../media/common/videobuf2/videobuf2-core.c   | 23 +++++++++++++++++++
- 1 file changed, 23 insertions(+)
-
---- a/drivers/media/common/videobuf2/videobuf2-core.c
-+++ b/drivers/media/common/videobuf2/videobuf2-core.c
-@@ -554,6 +554,20 @@ bool vb2_buffer_in_use(struct vb2_queue
- }
- EXPORT_SYMBOL(vb2_buffer_in_use);
-+/*
-+ * __buffers_in_use() - return true if any buffers on the queue are in use and
-+ * the queue cannot be freed (by the means of REQBUFS(0)) call
-+ */
-+static bool __buffers_in_use(struct vb2_queue *q)
-+{
-+      unsigned int buffer;
-+      for (buffer = 0; buffer < q->num_buffers; ++buffer) {
-+              if (vb2_buffer_in_use(q, q->bufs[buffer]))
-+                      return true;
-+      }
-+      return false;
-+}
-+
- void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb)
- {
-       call_void_bufop(q, fill_user_buffer, q->bufs[index], pb);
-@@ -665,7 +679,16 @@ int vb2_core_reqbufs(struct vb2_queue *q
-       if (*count == 0 || q->num_buffers != 0 ||
-           (q->memory != VB2_MEMORY_UNKNOWN && q->memory != memory)) {
-+              /*
-+               * We already have buffers allocated, so first check if they
-+               * are not in use and can be freed.
-+               */
-               mutex_lock(&q->mmap_lock);
-+              if (q->memory == VB2_MEMORY_MMAP && __buffers_in_use(q)) {
-+                      mutex_unlock(&q->mmap_lock);
-+                      dprintk(1, "memory in use, cannot free\n");
-+                      return -EBUSY;
-+              }
-               /*
-                * Call queue_cancel to clean up any buffers in the PREPARED or