1
0

video: driver: handle zero length, RO last flag buffer

reset data size to zero for last flag buffer.
reset RO flag for last flag buffer.

Change-Id: Idb340217c00ce478d1ec7de338b2ad38da23016d
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
Este cometimento está contido em:
Darshana Patil
2021-02-09 11:12:52 -08:00
ascendente 0b04217dd2
cometimento 964c0e2b79

Ver ficheiro

@@ -489,13 +489,23 @@ static int handle_output_buffer(struct msm_vidc_inst *inst,
buf->attr &= ~MSM_VIDC_ATTR_QUEUED;
buf->attr |= MSM_VIDC_ATTR_DEQUEUED;
/*
* reset read only flag for a zero length
* buffer (if marked read only)
* reset data size to zero for last flag buffer.
* reset RO flag for last flag buffer.
*/
if (buffer->flags & HFI_BUF_FW_FLAG_READONLY &&
!buffer->data_size)
buf->attr &= ~MSM_VIDC_ATTR_READ_ONLY;
else if (buffer->flags & HFI_BUF_FW_FLAG_READONLY)
if (buffer->flags & HFI_BUF_FW_FLAG_LAST) {
if (buffer->data_size) {
i_vpr_e(inst, "%s: reset data size to zero for last flag buffer\n",
__func__);
buffer->data_size = 0;
}
if (buffer->flags & HFI_BUF_FW_FLAG_READONLY) {
i_vpr_e(inst, "%s: reset RO flag for last flag buffer\n",
__func__);
buffer->flags &= ~HFI_BUF_FW_FLAG_READONLY;
}
}
if (buffer->flags & HFI_BUF_FW_FLAG_READONLY)
buf->attr |= MSM_VIDC_ATTR_READ_ONLY;
else
buf->attr &= ~MSM_VIDC_ATTR_READ_ONLY;