From 7818456489bb234cdabeaaca7044eafbd472a651 Mon Sep 17 00:00:00 2001 From: Akshata Sahukar Date: Wed, 14 Sep 2022 16:46:06 -0700 Subject: [PATCH] video: driver: fix AV1D fence timing failures during flush sequence Flushed out buffers by driver retain filled length field same as it was while queued to driver. This is incorrect as it gives an impression to the client that some data has been written by driver/firmware. Hence, reset this to 0 while dequeuing to fix the issue. Change-Id: Ia2bb86a3462255991d45a1f77cab39a4a0eafd23 Signed-off-by: Akshata Sahukar --- driver/vidc/src/msm_vidc_driver.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index 6482af8cc5..1dd2fd3f07 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/driver/vidc/src/msm_vidc_driver.c @@ -5560,8 +5560,10 @@ int msm_vidc_flush_buffers(struct msm_vidc_inst *inst, if (buf->attr & MSM_VIDC_ATTR_QUEUED || buf->attr & MSM_VIDC_ATTR_DEFERRED) { print_vidc_buffer(VIDC_HIGH, "high", "flushing buffer", inst, buf); - if (!(buf->attr & MSM_VIDC_ATTR_BUFFER_DONE)) + if (!(buf->attr & MSM_VIDC_ATTR_BUFFER_DONE)) { + buf->data_size = 0; msm_vidc_vb2_buffer_done(inst, buf); + } msm_vidc_put_driver_buf(inst, buf); } }