Use the newly introduced vb2_get_buffer API and avoid
accessing buffers in the queue directly.

Cc: Tiffany Lin <tiffany....@mediatek.com>
Cc: Andrew-CT Chen <andrew-ct.c...@mediatek.com>
Signed-off-by: Ezequiel Garcia <ezequ...@collabora.com>
---
 drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c 
b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
index 67e8a023ef41..5198912a1996 100644
--- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
+++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
@@ -860,11 +860,17 @@ static int vb2ops_venc_start_streaming(struct vb2_queue 
*q, unsigned int count)
 
 err_set_param:
        for (i = 0; i < q->num_buffers; ++i) {
-               if (q->bufs[i]->state == VB2_BUF_STATE_ACTIVE) {
+               struct vb2_buffer *buf = vb2_get_buffer(q, i);
+
+               /*
+                * FIXME: This check is not needed as only active buffers
+                * can be marked as done.
+                */
+               if (buf->state == VB2_BUF_STATE_ACTIVE) {
                        mtk_v4l2_debug(0, "[%d] id=%d, type=%d, %d -> 
VB2_BUF_STATE_QUEUED",
                                        ctx->id, i, q->type,
-                                       (int)q->bufs[i]->state);
-                       v4l2_m2m_buf_done(to_vb2_v4l2_buffer(q->bufs[i]),
+                                       (int)buf->state);
+                       v4l2_m2m_buf_done(to_vb2_v4l2_buffer(buf),
                                        VB2_BUF_STATE_QUEUED);
                }
        }
-- 
2.20.1

Reply via email to