diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0939-staging-vc04_service-codec-Allow-start_streaming-to-.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0939-staging-vc04_service-codec-Allow-start_streaming-to-.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0939-staging-vc04_service-codec-Allow-start_streaming-to-.patch b/target/linux/bcm27xx/patches-5.4/950-0939-staging-vc04_service-codec-Allow-start_streaming-to-.patch deleted file mode 100644 index 66a551d2d7..0000000000 --- a/target/linux/bcm27xx/patches-5.4/950-0939-staging-vc04_service-codec-Allow-start_streaming-to-.patch +++ /dev/null @@ -1,70 +0,0 @@ -From d88ef7d22cac032c4ddf7e4b8af5982d5a3019cb Mon Sep 17 00:00:00 2001 -From: Dave Stevenson <dave.stevenson@raspberrypi.com> -Date: Thu, 13 Aug 2020 17:01:27 +0100 -Subject: [PATCH] staging: vc04_service: codec: Allow start_streaming - to update the buffernum - -start_streaming passes a count of how many buffers have been queued -to videobuf2. - -Allow this value to update the number of buffers the VPU allocates -on a port to avoid buffer recycling issues. - -Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> ---- - .../bcm2835-codec/bcm2835-v4l2-codec.c | 23 +++++++++++++++---- - 1 file changed, 19 insertions(+), 4 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c -+++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c -@@ -2268,6 +2268,7 @@ static int bcm2835_codec_start_streaming - struct bcm2835_codec_ctx *ctx = vb2_get_drv_priv(q); - struct bcm2835_codec_dev *dev = ctx->dev; - struct bcm2835_codec_q_data *q_data = get_q_data(ctx, q->type); -+ struct vchiq_mmal_port *port = get_port_data(ctx, q->type); - int ret; - - v4l2_dbg(1, debug, &ctx->dev->v4l2_dev, "%s: type: %d count %d\n", -@@ -2283,6 +2284,20 @@ static int bcm2835_codec_start_streaming - ctx->component_enabled = true; - } - -+ if (count < port->minimum_buffer.num) -+ count = port->minimum_buffer.num; -+ -+ if (port->current_buffer.num != count + 1) { -+ v4l2_dbg(2, debug, &ctx->dev->v4l2_dev, "%s: ctx:%p, buffer count changed %u to %u\n", -+ __func__, ctx, port->current_buffer.num, count + 1); -+ -+ port->current_buffer.num = count + 1; -+ ret = vchiq_mmal_port_set_format(dev->instance, port); -+ if (ret) -+ v4l2_err(&ctx->dev->v4l2_dev, "%s: Error updating buffer count, ret %d\n", -+ __func__, ret); -+ } -+ - if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { - /* - * Create the EOS buffer. -@@ -2294,17 +2309,17 @@ static int bcm2835_codec_start_streaming - &q_data->eos_buffer.mmal); - q_data->eos_buffer_in_use = false; - -- ctx->component->input[0].cb_ctx = ctx; -+ port->cb_ctx = ctx; - ret = vchiq_mmal_port_enable(dev->instance, -- &ctx->component->input[0], -+ port, - ip_buffer_cb); - if (ret) - v4l2_err(&ctx->dev->v4l2_dev, "%s: Failed enabling i/p port, ret %d\n", - __func__, ret); - } else { -- ctx->component->output[0].cb_ctx = ctx; -+ port->cb_ctx = ctx; - ret = vchiq_mmal_port_enable(dev->instance, -- &ctx->component->output[0], -+ port, - op_buffer_cb); - if (ret) - v4l2_err(&ctx->dev->v4l2_dev, "%s: Failed enabling o/p port, ret %d\n", |