summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPraneeth Paladugu <ppaladug@codeaurora.org>2016-11-09 22:32:03 -0800
committerPraneeth Paladugu <ppaladug@codeaurora.org>2016-11-10 16:24:26 -0800
commitc9cfe96ceab9bebf69ef09e41f3c46a1b41ec9ce (patch)
tree7453267be28b70bda4d5fe93c6350814391469e9 /drivers
parent4a91ea36cbf0f5a782b5b6f69604ed70bd0ab6ba (diff)
msm: vidc: Avoid unnecessary buffer requirements call
When clients make call to release buffers, driver is calling buffer requirements to HW. Sometimes this can cause incorrect state operation which can result buf_req failure. Hence avoid this call. CRs-Fixed: 1087935 Change-Id: I12873a92ed0b7157032c25946cce27349f2c2a1f Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/platform/msm/vidc/msm_v4l2_vidc.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c b/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c
index 3633d1fb3cd1..5a8a19fddf9b 100644
--- a/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c
+++ b/drivers/media/platform/msm/vidc/msm_v4l2_vidc.c
@@ -138,12 +138,20 @@ int msm_v4l2_reqbufs(struct file *file, void *fh,
{
struct msm_vidc_inst *vidc_inst = get_vidc_inst(file, fh);
int rc = 0;
- if (!b->count)
+ if (!b->count) {
rc = msm_vidc_release_buffers(vidc_inst, b->type);
- if (rc)
- dprintk(VIDC_WARN,
- "Failed in %s for release output buffers\n", __func__);
- return msm_vidc_reqbufs((void *)vidc_inst, b);
+ if (rc)
+ dprintk(VIDC_WARN,
+ "Failed in %s for release output buffers\n",
+ __func__);
+ } else {
+ rc = msm_vidc_reqbufs((void *)vidc_inst, b);
+ if (rc)
+ dprintk(VIDC_WARN,
+ "Failed in %s for buffer requirements\n",
+ __func__);
+ }
+ return rc;
}
int msm_v4l2_prepare_buf(struct file *file, void *fh,