diff options
| author | Praneeth Paladugu <ppaladug@codeaurora.org> | 2016-11-09 22:32:03 -0800 |
|---|---|---|
| committer | Praneeth Paladugu <ppaladug@codeaurora.org> | 2016-11-10 16:24:26 -0800 |
| commit | c9cfe96ceab9bebf69ef09e41f3c46a1b41ec9ce (patch) | |
| tree | 7453267be28b70bda4d5fe93c6350814391469e9 /drivers | |
| parent | 4a91ea36cbf0f5a782b5b6f69604ed70bd0ab6ba (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.c | 18 |
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, |
