Re: [PATCH v14 10/56] media: amphion: Stop direct calls to queue num_buffers field

Andrzej Pietrasiewicz
2023-11-08T16:56:43Z

W dniu 31.10.2023 o 17:30, Benjamin Gaignard pisze:
> Use vb2_get_num_buffers() to avoid using queue num_buffers field directly.
> This allows us to change how the number of buffers is computed in the
> future.
>
> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>

Reviewed-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>

> CC: Ming Qian <ming.qian@nxp.com>
> CC: Zhou Peng <eagle.zhou@nxp.com>
> ---
> drivers/media/platform/amphion/vpu_dbg.c | 8 ++++----
> drivers/media/platform/amphion/vpu_v4l2.c | 4 ++--
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/platform/amphion/vpu_dbg.c b/drivers/media/platform/amphion/vpu_dbg.c
> index a462d6fe4ea9..940e5bda5fa3 100644
> --- a/drivers/media/platform/amphion/vpu_dbg.c
> +++ b/drivers/media/platform/amphion/vpu_dbg.c
> @@ -87,7 +87,7 @@ static int vpu_dbg_instance(struct seq_file *s, void *data)
> num = scnprintf(str, sizeof(str),
> "output (%2d, %2d): fmt = %c%c%c%c %d x %d, %d;",
> vb2_is_streaming(vq),
> - vq->num_buffers,
> + vb2_get_num_buffers(vq),
> inst->out_format.pixfmt,
> inst->out_format.pixfmt >> 8,
> inst->out_format.pixfmt >> 16,
> @@ -111,7 +111,7 @@ static int vpu_dbg_instance(struct seq_file *s, void *data)
> num = scnprintf(str, sizeof(str),
> "capture(%2d, %2d): fmt = %c%c%c%c %d x %d, %d;",
> vb2_is_streaming(vq),
> - vq->num_buffers,
> + vb2_get_num_buffers(vq),
> inst->cap_format.pixfmt,
> inst->cap_format.pixfmt >> 8,
> inst->cap_format.pixfmt >> 16,
> @@ -139,7 +139,7 @@ static int vpu_dbg_instance(struct seq_file *s, void *data)
> return 0;
>
> vq = v4l2_m2m_get_src_vq(inst->fh.m2m_ctx);
> - for (i = 0; i < vq->num_buffers; i++) {
> + for (i = 0; i < vb2_get_num_buffers(vq); i++) {
> struct vb2_buffer *vb;
> struct vb2_v4l2_buffer *vbuf;
>
> @@ -161,7 +161,7 @@ static int vpu_dbg_instance(struct seq_file *s, void *data)
> }
>
> vq = v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx);
> - for (i = 0; i < vq->num_buffers; i++) {
> + for (i = 0; i < vb2_get_num_buffers(vq); i++) {
> struct vb2_buffer *vb;
> struct vb2_v4l2_buffer *vbuf;
>
> diff --git a/drivers/media/platform/amphion/vpu_v4l2.c b/drivers/media/platform/amphion/vpu_v4l2.c
> index 0f6e4c666440..87afb4a18d5d 100644
> --- a/drivers/media/platform/amphion/vpu_v4l2.c
> +++ b/drivers/media/platform/amphion/vpu_v4l2.c
> @@ -439,7 +439,7 @@ int vpu_get_num_buffers(struct vpu_inst *inst, u32 type)
> else
> q = v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx);
>
> - return q->num_buffers;
> + return vb2_get_num_buffers(q);
> }
>
> static void vpu_m2m_device_run(void *priv)
> @@ -587,7 +587,7 @@ static int vpu_vb2_start_streaming(struct vb2_queue *q, unsigned int count)
> fmt->sizeimage[0], fmt->bytesperline[0],
> fmt->sizeimage[1], fmt->bytesperline[1],
> fmt->sizeimage[2], fmt->bytesperline[2],
> - q->num_buffers);
> + vb2_get_num_buffers(q));
> vb2_clear_last_buffer_dequeued(q);
> ret = call_vop(inst, start, q->type);
> if (ret)