From c57e83cd4bb60ea779cd2ae0f3f72f65d1fe9db4 Mon Sep 17 00:00:00 2001 From: Vasantha Balla Date: Fri, 17 Dec 2021 14:48:52 +0530 Subject: [PATCH 1/2] msm: vidc: Add clock/bus votes for eos/flush commands If voting is not added for eos and flush command processing, Firmware is processing only high priority session commands which causes non real time session to wait for completion of realtime session for its eos processing. So adding votes for eos and flush commands. Change-Id: I9de8c1d0dc79e93d991d34d2d687e2fa1910531b Signed-off-by: Vasantha Balla --- msm/vidc/msm_vidc_clocks.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/msm/vidc/msm_vidc_clocks.c b/msm/vidc/msm_vidc_clocks.c index 168abc2f8080..667d62c38054 100644 --- a/msm/vidc/msm_vidc_clocks.c +++ b/msm/vidc/msm_vidc_clocks.c @@ -318,8 +318,16 @@ int msm_comm_set_buses(struct msm_vidc_core *core, u32 sid) mutex_unlock(&inst->registeredbufs.lock); if (!filled_len || !device_addr) { + mutex_lock(&inst->eosbufs.lock); + if (list_empty(&inst->eosbufs.list) && + !inst->in_flush && !inst->out_flush) { + s_vpr_l(sid, "%s: No pending eos/flush cmds\n", + __func__); + mutex_unlock(&inst->eosbufs.lock); + continue; + } + mutex_unlock(&inst->eosbufs.lock); s_vpr_l(sid, "%s: no input\n", __func__); - continue; } /* skip inactive session bus bandwidth */ @@ -856,8 +864,16 @@ int msm_vidc_set_clocks(struct msm_vidc_core *core, u32 sid) mutex_unlock(&inst->registeredbufs.lock); if (!filled_len || !device_addr) { + mutex_lock(&inst->eosbufs.lock); + if (list_empty(&inst->eosbufs.list) && !inst->in_flush + && !inst->out_flush) { + s_vpr_l(sid, "%s: No pending eos/flush cmds\n", + __func__); + mutex_unlock(&inst->eosbufs.lock); + continue; + } + mutex_unlock(&inst->eosbufs.lock); s_vpr_l(sid, "%s: no input\n", __func__); - continue; } /* skip inactive session clock rate */ From 81426844a2671ef300781843e6880a1d4fd622a4 Mon Sep 17 00:00:00 2001 From: Rahul Ratneshwar Mandal Date: Tue, 9 Aug 2022 19:03:53 +0530 Subject: [PATCH 2/2] msm: vidc: Update avc/hevc dec capability as per PRD allow support upto level 6.2 for AVC/HEVC decoder. Change-Id: I095373a8dbbccee37e16f64d820261efeccbbd44 --- msm/vidc/msm_vidc_platform.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/msm/vidc/msm_vidc_platform.c b/msm/vidc/msm_vidc_platform.c index 1abab9cf22bc..4dc258ae6214 100644 --- a/msm/vidc/msm_vidc_platform.c +++ b/msm/vidc/msm_vidc_platform.c @@ -532,10 +532,10 @@ static struct msm_vidc_codec_capability lahaina_capabilities[] = { /* Level for AVC, HEVC and VP9 decoder specific */ {CAP_H264_LEVEL, DEC, H264, V4L2_MPEG_VIDEO_H264_LEVEL_1_0, - V4L2_MPEG_VIDEO_H264_LEVEL_6_1, 1, + V4L2_MPEG_VIDEO_H264_LEVEL_6_2, 1, V4L2_MPEG_VIDEO_H264_LEVEL_5_0}, {CAP_HEVC_LEVEL, DEC, HEVC, V4L2_MPEG_VIDEO_HEVC_LEVEL_1, - V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1, 1, + V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2, 1, V4L2_MPEG_VIDEO_HEVC_LEVEL_5}, {CAP_VP9_LEVEL, DEC, VP9, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_UNUSED, V4L2_MPEG_VIDC_VIDEO_VP9_LEVEL_51, 1,