summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2023-03-04 01:47:45 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2023-03-04 01:47:45 -0800
commitca61bc4c297fe39c1c96277879fe2882b68e6ed4 (patch)
treea2c2a028a2d0e278bfa78fc014f44d44076d1172
parentdd4439180265fec69e70f171f8441ff65f373736 (diff)
parent07c731953dccd8d99cb0f3c0306cce748d95da67 (diff)
downloadvideo-driver-ca61bc4c297fe39c1c96277879fe2882b68e6ed4.tar.gz
Merge "msm: vidc: Add checks for release reference buffer"
-rw-r--r--driver/vidc/src/msm_vdec.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/driver/vidc/src/msm_vdec.c b/driver/vidc/src/msm_vdec.c
index acb574a..e35e415 100644
--- a/driver/vidc/src/msm_vdec.c
+++ b/driver/vidc/src/msm_vdec.c
@@ -2006,12 +2006,19 @@ static int msm_vdec_release_nonref_buffers(struct msm_vidc_inst *inst)
/* send release flag along with read only flag for release list bufs*/
list_for_each_entry(rel_buf, &inst->buffers.release.list, list) {
+ /* do not release already pending release buffers */
+ if (rel_buf->attr & MSM_VIDC_ATTR_PENDING_RELEASE)
+ continue;
+
/* fw needs RO flag for FTB release buffer */
rel_buf->attr |= MSM_VIDC_ATTR_READ_ONLY;
print_vidc_buffer(VIDC_LOW, "low ", "release buf", inst, rel_buf);
rc = venus_hfi_release_buffer(inst, rel_buf);
if (rc)
return rc;
+
+ /* mark pending release */
+ rel_buf->attr |= MSM_VIDC_ATTR_PENDING_RELEASE;
}
return rc;