From 7dd8b6d186d73645dd30be91c5b8ae1957ceab91 Mon Sep 17 00:00:00 2001 From: Mihir Ganu Date: Fri, 16 Sep 2022 10:35:09 -0700 Subject: [PATCH] video: driver: Always Set COMV bufcount to FW Always set COMV bufcount to FW, even if COMV buffer can be reused. Otherwise, there may be a mismatch in COM bufcount between host and firmware. Change-Id: I10d54818a4478e8b0a9e9577c6c8684ad52f5de8 Signed-off-by: Mihir Ganu --- driver/vidc/src/msm_vidc_driver.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index 9d332b8413..11123e7877 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/driver/vidc/src/msm_vidc_driver.c @@ -3990,6 +3990,16 @@ int msm_vidc_queue_internal_buffers(struct msm_vidc_inst *inst, return 0; } + /* + * Set HFI_PROP_COMV_BUFFER_COUNT to firmware even if COMV buffer + * is reused. + */ + if (is_decode_session(inst) && buffer_type == MSM_VIDC_BUF_COMV) { + rc = msm_vdec_set_num_comv(inst); + if (rc) + return rc; + } + buffers = msm_vidc_get_buffers(inst, buffer_type, __func__); if (!buffers) return -EINVAL; @@ -4000,12 +4010,6 @@ int msm_vidc_queue_internal_buffers(struct msm_vidc_inst *inst, return 0; } - if (is_decode_session(inst) && buffer_type == MSM_VIDC_BUF_COMV) { - rc = msm_vdec_set_num_comv(inst); - if (rc) - return rc; - } - list_for_each_entry_safe(buffer, dummy, &buffers->list, list) { /* do not queue pending release buffers */ if (buffer->flags & MSM_VIDC_ATTR_PENDING_RELEASE)