1 From 8ffc08d336326d576b84d59135402f08cf2cf41c Mon Sep 17 00:00:00 2001
2 From: Chen-Yu Tsai <wens@csie.org>
3 Date: Mon, 22 Jul 2019 22:13:30 +0800
4 Subject: [PATCH] staging: bcm2835-codec: implement
5 V4L2_CID_MIN_BUFFERS_FOR_CAPTURE
7 The stateful decoder specification shows an optional step for retrieving
8 the miminum number of capture buffers required for the decoder to
9 proceed. While not a required parameter, having it makes some
12 bcm2835-codec is a little different from other decoder implementations
13 in that there is an intermediate format conversion between the hardware
14 and V4L2 buffers. The number of capture buffers required is therefore
15 independent of the stream and DPB etc.
17 There are plans to remove the conversion, but it requires a fair amount
18 of rework within the firmware. Until that is done, simply return a value
21 Signed-off-by: Chen-Yu Tsai <wens@csie.org>
23 .../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 12 ++++++++++++
24 1 file changed, 12 insertions(+)
26 --- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
27 +++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
28 @@ -2357,6 +2357,18 @@ static int bcm2835_codec_open(struct fil
30 ctx->fh.ctrl_handler = hdl;
31 v4l2_ctrl_handler_setup(hdl);
32 + } else if (dev->role == DECODE) {
33 + v4l2_ctrl_handler_init(hdl, 1);
35 + v4l2_ctrl_new_std(hdl, &bcm2835_codec_ctrl_ops,
36 + V4L2_CID_MIN_BUFFERS_FOR_CAPTURE,
40 + goto free_ctrl_handler;
42 + ctx->fh.ctrl_handler = hdl;
43 + v4l2_ctrl_handler_setup(hdl);
46 ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->m2m_dev, ctx, &queue_init);