video: driver: add fix to return all buffers back to client

If client attempts streamoff and msm_vidc_close sequence
concurrently, then all buffers not returned back to client,
i.e leading to warnon at vb2_queue_cancel at vb2 layer.
So added change to send vb2_buffer_done at driver fd close
sequence.

Change-Id: I43d779000501907d12d5ba8e90e007bdf5b8b801
Signed-off-by: Govindaraj Rajagopal <grajagop@codeaurora.org>
This commit is contained in:
Govindaraj Rajagopal
2021-04-15 17:55:44 +05:30
parent 9635a177c9
commit 6f281973aa

View File

@@ -4167,6 +4167,8 @@ void msm_vidc_destroy_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) {
print_vidc_buffer(VIDC_ERR, "err ", "destroying ", inst, buf); print_vidc_buffer(VIDC_ERR, "err ", "destroying ", inst, buf);
if (!(buf->attr & MSM_VIDC_ATTR_BUFFER_DONE))
msm_vidc_vb2_buffer_done(inst, buf);
msm_vidc_put_driver_buf(inst, buf); msm_vidc_put_driver_buf(inst, buf);
} }
msm_vidc_unmap_buffers(inst, ext_buf_types[i]); msm_vidc_unmap_buffers(inst, ext_buf_types[i]);