From f9b8fd3627011ce05c8007855137db3401e61c05 Mon Sep 17 00:00:00 2001 From: Surajit Podder Date: Tue, 11 Jul 2017 20:13:31 +0530 Subject: [PATCH] msm: vidc: Fix issue in cache operation range Start offset is not considered in cache operation logic, due to which bytes at the end of payload might be stale. Add logic to add offset to cache operation length from start of buffer, to ensure correct cache operation. Change-Id: I5fed2fe78f803d3d4d3283ab293ad86238dbc620 Signed-off-by: Surajit Podder --- drivers/media/platform/msm/vidc/msm_vidc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/msm/vidc/msm_vidc.c b/drivers/media/platform/msm/vidc/msm_vidc.c index 7caf61cb6799..7321e7cd0a3e 100644 --- a/drivers/media/platform/msm/vidc/msm_vidc.c +++ b/drivers/media/platform/msm/vidc/msm_vidc.c @@ -822,7 +822,8 @@ int output_buffer_cache_invalidate(struct msm_vidc_inst *inst, if (inst->session_type == MSM_VIDC_ENCODER && !i) - size = b->m.planes[i].bytesused; + size = b->m.planes[i].bytesused + + b->m.planes[i].data_offset; else size = -1; @@ -1056,7 +1057,8 @@ int msm_vidc_qbuf(void *instance, struct v4l2_buffer *b) if (binfo->handle[i] && (b->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)) { if (inst->session_type == MSM_VIDC_DECODER && !i) - size = b->m.planes[i].bytesused; + size = b->m.planes[i].bytesused + + b->m.planes[i].data_offset; else size = -1; rc = msm_comm_smem_cache_operations(inst,