Loading msm/vidc/msm_vidc_clocks.c +11 −15 Original line number Diff line number Diff line Loading @@ -1237,9 +1237,11 @@ static int msm_vidc_decide_work_mode_ar50_lt(struct msm_vidc_inst *inst) return -EINVAL; } latency.enable = false; hdev = inst->core->device; if (inst->clk_data.low_latency_mode) { pdata.video_work_mode = HFI_WORKMODE_1; latency.enable = true; goto decision_done; } Loading @@ -1259,20 +1261,25 @@ static int msm_vidc_decide_work_mode_ar50_lt(struct msm_vidc_inst *inst) } } else if (inst->session_type == MSM_VIDC_ENCODER) { pdata.video_work_mode = HFI_WORKMODE_1; /* For WORK_MODE_1, set Low Latency mode by default */ latency.enable = true; 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) V4L2_MPEG_VIDEO_BITRATE_MODE_CQ) { pdata.video_work_mode = HFI_WORKMODE_2; latency.enable = false; } } else { return -EINVAL; } decision_done: s_vpr_h(inst->sid, "Configuring work mode = %u low latency = %u", pdata.video_work_mode, latency.enable); inst->clk_data.work_mode = pdata.video_work_mode; rc = call_hfi_op(hdev, session_set_property, (void *)inst->session, HFI_PROPERTY_PARAM_WORK_MODE, Loading @@ -1280,22 +1287,12 @@ static int msm_vidc_decide_work_mode_ar50_lt(struct msm_vidc_inst *inst) if (rc) s_vpr_e(inst->sid, "Failed to configure Work Mode\n"); /* For WORK_MODE_1, set Low Latency mode by default to HW. */ latency.enable = false; if (inst->session_type == MSM_VIDC_ENCODER && inst->clk_data.work_mode == HFI_WORKMODE_1) { latency.enable = true; if (inst->session_type == MSM_VIDC_ENCODER && latency.enable) { rc = call_hfi_op(hdev, session_set_property, (void *)inst->session, HFI_PROPERTY_PARAM_VENC_LOW_LATENCY_MODE, (void *)&latency, sizeof(latency)); } s_vpr_h(inst->sid, "Configuring work mode = %u low latency = %u", pdata.video_work_mode, latency.enable); rc = msm_comm_scale_clocks_and_bus(inst, 1); return rc; Loading Loading @@ -1401,8 +1398,7 @@ int msm_vidc_decide_work_mode_iris2(struct msm_vidc_inst *inst) } s_vpr_h(inst->sid, "Configuring work mode = %u low latency = %u", pdata.video_work_mode, latency.enable); pdata.video_work_mode, latency.enable); if (inst->session_type == MSM_VIDC_ENCODER) { rc = call_hfi_op(hdev, session_set_property, Loading Loading
msm/vidc/msm_vidc_clocks.c +11 −15 Original line number Diff line number Diff line Loading @@ -1237,9 +1237,11 @@ static int msm_vidc_decide_work_mode_ar50_lt(struct msm_vidc_inst *inst) return -EINVAL; } latency.enable = false; hdev = inst->core->device; if (inst->clk_data.low_latency_mode) { pdata.video_work_mode = HFI_WORKMODE_1; latency.enable = true; goto decision_done; } Loading @@ -1259,20 +1261,25 @@ static int msm_vidc_decide_work_mode_ar50_lt(struct msm_vidc_inst *inst) } } else if (inst->session_type == MSM_VIDC_ENCODER) { pdata.video_work_mode = HFI_WORKMODE_1; /* For WORK_MODE_1, set Low Latency mode by default */ latency.enable = true; 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) V4L2_MPEG_VIDEO_BITRATE_MODE_CQ) { pdata.video_work_mode = HFI_WORKMODE_2; latency.enable = false; } } else { return -EINVAL; } decision_done: s_vpr_h(inst->sid, "Configuring work mode = %u low latency = %u", pdata.video_work_mode, latency.enable); inst->clk_data.work_mode = pdata.video_work_mode; rc = call_hfi_op(hdev, session_set_property, (void *)inst->session, HFI_PROPERTY_PARAM_WORK_MODE, Loading @@ -1280,22 +1287,12 @@ static int msm_vidc_decide_work_mode_ar50_lt(struct msm_vidc_inst *inst) if (rc) s_vpr_e(inst->sid, "Failed to configure Work Mode\n"); /* For WORK_MODE_1, set Low Latency mode by default to HW. */ latency.enable = false; if (inst->session_type == MSM_VIDC_ENCODER && inst->clk_data.work_mode == HFI_WORKMODE_1) { latency.enable = true; if (inst->session_type == MSM_VIDC_ENCODER && latency.enable) { rc = call_hfi_op(hdev, session_set_property, (void *)inst->session, HFI_PROPERTY_PARAM_VENC_LOW_LATENCY_MODE, (void *)&latency, sizeof(latency)); } s_vpr_h(inst->sid, "Configuring work mode = %u low latency = %u", pdata.video_work_mode, latency.enable); rc = msm_comm_scale_clocks_and_bus(inst, 1); return rc; Loading Loading @@ -1401,8 +1398,7 @@ int msm_vidc_decide_work_mode_iris2(struct msm_vidc_inst *inst) } s_vpr_h(inst->sid, "Configuring work mode = %u low latency = %u", pdata.video_work_mode, latency.enable); pdata.video_work_mode, latency.enable); if (inst->session_type == MSM_VIDC_ENCODER) { rc = call_hfi_op(hdev, session_set_property, Loading