video: driver: handle encoder repeat buffer scenario

Encoder yuv buffer dma_buffer addr can repeat. So donot attempt
to add same buffer node again.

Change-Id: Ic43e1704d4e355c5e98ee059e03107087260f202
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
此提交包含在:
Govindaraj Rajagopal
2021-02-05 16:14:14 +05:30
父節點 d4a802bba5
當前提交 97ff8e4a71

查看文件

@@ -1376,22 +1376,21 @@ struct msm_vidc_buffer *msm_vidc_get_driver_buf(struct msm_vidc_inst *inst,
/* for encoder, treat the repeated buffer as new buffer */
if (is_encode_session(inst) && vb2->type == INPUT_MPLANE)
found = false;
} else {
}
if (!found) {
buf = kzalloc(sizeof(struct msm_vidc_buffer), GFP_KERNEL);
if (!buf) {
i_vpr_e(inst, "%s: alloc failed\n", __func__);
goto error;
}
INIT_LIST_HEAD(&buf->list);
buf->dmabuf = dmabuf;
INIT_LIST_HEAD(&buf->list);
list_add_tail(&buf->list, &buffers->list);
}
rc = vb2_buffer_to_driver(vb2, buf);
if (rc)
goto error;
if (!found)
list_add_tail(&buf->list, &buffers->list);
rc = msm_vidc_map_driver_buf(inst, buf);
if (rc)
goto error;