diff options
author | qctecmdr <qctecmdr@localhost> | 2023-03-04 01:47:45 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2023-03-04 01:47:45 -0800 |
commit | ca61bc4c297fe39c1c96277879fe2882b68e6ed4 (patch) | |
tree | a2c2a028a2d0e278bfa78fc014f44d44076d1172 | |
parent | dd4439180265fec69e70f171f8441ff65f373736 (diff) | |
parent | 07c731953dccd8d99cb0f3c0306cce748d95da67 (diff) | |
download | video-driver-ca61bc4c297fe39c1c96277879fe2882b68e6ed4.tar.gz |
Merge "msm: vidc: Add checks for release reference buffer"
-rw-r--r-- | driver/vidc/src/msm_vdec.c | 7 |
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; |