diff --git a/drivers/media/platform/msm/vidc/msm_venc.c b/drivers/media/platform/msm/vidc/msm_venc.c index c08084a54e86..86eba04ce348 100644 --- a/drivers/media/platform/msm/vidc/msm_venc.c +++ b/drivers/media/platform/msm/vidc/msm_venc.c @@ -2198,6 +2198,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_NUM_P_FRAMES: { int num_p, num_b; + u32 max_num_b_frames; temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES); num_b = temp_ctrl->val; @@ -2210,18 +2211,16 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) else if (ctrl->id == V4L2_CID_MPEG_VIDC_VIDEO_NUM_B_FRAMES) num_b = ctrl->val; - if (num_b) { - u32 max_num_b_frames = MAX_NUM_B_FRAMES; - property_id = HAL_PARAM_VENC_MAX_NUM_B_FRAMES; - pdata = &max_num_b_frames; - rc = call_hfi_op(hdev, session_set_property, - (void *)inst->session, property_id, pdata); - if (rc) { - dprintk(VIDC_ERR, - "Failed : Setprop MAX_NUM_B_FRAMES %d\n", - rc); - break; - } + max_num_b_frames = num_b ? MAX_NUM_B_FRAMES : 0; + property_id = HAL_PARAM_VENC_MAX_NUM_B_FRAMES; + pdata = &max_num_b_frames; + rc = call_hfi_op(hdev, session_set_property, + (void *)inst->session, property_id, pdata); + if (rc) { + dprintk(VIDC_ERR, + "Failed : Setprop MAX_NUM_B_FRAMES %d\n", + rc); + break; } property_id = HAL_CONFIG_VENC_INTRA_PERIOD;