aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.15/950-0491-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0491-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.15/950-0491-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0491-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch b/target/linux/bcm27xx/patches-5.15/950-0491-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch
new file mode 100644
index 0000000000..f33f603356
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.15/950-0491-staging-bcm2835-codec-Return-buffers-to-QUEUED-not-E.patch
@@ -0,0 +1,35 @@
+From a07df18f2992baca3fa9d6a16ae93b585786c5d4 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Thu, 5 Aug 2021 16:46:42 +0100
+Subject: [PATCH] staging/bcm2835-codec: Return buffers to QUEUED not
+ ERROR state
+
+Should start_streaming fail, or buffers be queued during
+stop_streaming, they should be returned to the core as QUEUED
+and not (as currently) as ERROR.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+---
+ .../staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
+@@ -1111,7 +1111,7 @@ static void op_buffer_cb(struct vchiq_mm
+ v4l2_dbg(2, debug, &ctx->dev->v4l2_dev, "%s: Empty buffer - flags %04x",
+ __func__, mmal_buf->mmal_flags);
+ if (!(mmal_buf->mmal_flags & MMAL_BUFFER_HEADER_FLAG_EOS)) {
+- vb2_buffer_done(&vb2->vb2_buf, VB2_BUF_STATE_ERROR);
++ vb2_buffer_done(&vb2->vb2_buf, VB2_BUF_STATE_QUEUED);
+ if (!port->enabled)
+ complete(&ctx->frame_cmplt);
+ return;
+@@ -2683,7 +2683,7 @@ static void bcm2835_codec_stop_streaming
+ v4l2_dbg(1, debug, &ctx->dev->v4l2_dev, "%s: return buffer %p\n",
+ __func__, vbuf);
+
+- v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR);
++ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_QUEUED);
+ }
+
+ /* Disable MMAL port - this will flush buffers back */