diff --git a/msm/vidc/msm_vidc_clocks.c b/msm/vidc/msm_vidc_clocks.c index 5fc2d3b38cf4..8fbe805618fd 100644 --- a/msm/vidc/msm_vidc_clocks.c +++ b/msm/vidc/msm_vidc_clocks.c @@ -1153,9 +1153,17 @@ static int msm_vidc_decide_work_mode_ar50_lt(struct msm_vidc_inst *inst) pdata.video_work_mode = HFI_WORKMODE_1; break; } - } else if (inst->session_type == MSM_VIDC_ENCODER) + } else if (inst->session_type == MSM_VIDC_ENCODER) { pdata.video_work_mode = HFI_WORKMODE_1; - else { + if (inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_VBR || + inst->rc_type == + V4L2_MPEG_VIDEO_BITRATE_MODE_MBR || + inst->rc_type == + V4L2_MPEG_VIDEO_BITRATE_MODE_MBR_VFR || + inst->rc_type == + V4L2_MPEG_VIDEO_BITRATE_MODE_CQ) + pdata.video_work_mode = HFI_WORKMODE_2; + } else { return -EINVAL; }