video: driver: fix DPB buffer release

In vp9 splitmode cases, there is a possibility
fw reuses DPB buffers and hence does not return
these buffers as part of STOP command during
port reconfig. In this case, driver should not
destroy these DPB buffers. Added a fix for the
same.
Issue observed with: 1A1622D8_Dec_VP9_Argon_EOS0.

Change-Id: I81deded6a49290574ddda8d4f8efdfc0a9f733f3
Signed-off-by: Darshana Patil <quic_darshana@quicinc.com>
Signed-off-by: Maheshwar Ajja <quic_majja@quicinc.com>
这个提交包含在:
Darshana Patil
2023-07-26 16:34:48 -07:00
提交者 Maheshwar Ajja
父节点 050aed5c35
当前提交 4812c1460e

查看文件

@@ -796,6 +796,13 @@ static int msm_vdec_destroy_internal_buffers(struct msm_vidc_inst *inst,
} }
list_for_each_entry_safe(buf, dummy, &buffers->list, list) { list_for_each_entry_safe(buf, dummy, &buffers->list, list) {
/*
* do not destroy internal buffer (DPB buffer) if firmware
* did not return it, so skip if QUEUED flag is present
*/
if (buf->attr & MSM_VIDC_ATTR_QUEUED)
continue;
i_vpr_h(inst, i_vpr_h(inst,
"%s: destroying internal buffer: type %d idx %d fd %d addr %#llx size %d\n", "%s: destroying internal buffer: type %d idx %d fd %d addr %#llx size %d\n",
__func__, buf->type, buf->index, buf->fd, __func__, buf->type, buf->index, buf->fd,