Loading drivers/media/platform/msm/vidc/msm_vdec.c +1 −15 Original line number Diff line number Diff line Loading @@ -904,21 +904,7 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) inst->flags |= VIDC_REALTIME; break; case V4L2_CID_MPEG_VIDC_VIDEO_OPERATING_RATE: if (ctrl->val == INT_MAX) { dprintk(VIDC_DBG, "inst(%pK) Request for turbo mode\n", inst); inst->clk_data.turbo_mode = true; } else if (msm_vidc_validate_operating_rate(inst, ctrl->val)) { dprintk(VIDC_ERR, "Failed to set operating rate\n"); rc = -ENOTSUPP; } else { dprintk(VIDC_DBG, "inst(%pK) operating rate changed from %d to %d\n", inst, inst->clk_data.operating_rate >> 16, ctrl->val >> 16); inst->clk_data.operating_rate = ctrl->val; inst->clk_data.turbo_mode = false; } break; case V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_MODE: inst->clk_data.low_latency_mode = !!ctrl->val; Loading drivers/media/platform/msm/vidc/msm_venc.c +1 −15 Original line number Diff line number Diff line Loading @@ -1496,21 +1496,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) } break; case V4L2_CID_MPEG_VIDC_VIDEO_OPERATING_RATE: if (ctrl->val == INT_MAX) { dprintk(VIDC_DBG, "inst(%pK) Request for turbo mode\n", inst); inst->clk_data.turbo_mode = true; } else if (msm_vidc_validate_operating_rate(inst, ctrl->val)) { dprintk(VIDC_ERR, "Failed to set operating rate\n"); rc = -ENOTSUPP; } else { dprintk(VIDC_DBG, "inst(%pK) operating rate changed from %d to %d\n", inst, inst->clk_data.operating_rate >> 16, ctrl->val >> 16); inst->clk_data.operating_rate = ctrl->val; inst->clk_data.turbo_mode = false; } if (inst->state == MSM_VIDC_START_DONE) { rc = msm_venc_set_operating_rate(inst); if (rc) Loading drivers/media/platform/msm/vidc/msm_vidc_clocks.c +0 −70 Original line number Diff line number Diff line Loading @@ -888,13 +888,6 @@ int msm_vidc_set_clocks(struct msm_vidc_core *core) break; } if (temp->clk_data.turbo_mode) { dprintk(VIDC_PROF, "Found an instance with Turbo request\n"); freq_core_max = msm_vidc_max_freq(core); decrement = false; break; } /* increment even if one session requested for it */ if (temp->clk_data.dcvs_flags & MSM_VIDC_DCVS_INCR) increment = true; Loading Loading @@ -934,69 +927,6 @@ int msm_vidc_set_clocks(struct msm_vidc_core *core) return rc; } int msm_vidc_validate_operating_rate(struct msm_vidc_inst *inst, u32 operating_rate) { struct msm_vidc_inst *temp; struct msm_vidc_core *core; unsigned long max_freq, freq_left, ops_left, load, cycles, freq = 0; unsigned long mbs_per_second; int rc = 0; u32 curr_operating_rate = 0; if (!inst || !inst->core) { dprintk(VIDC_ERR, "%s Invalid args\n", __func__); return -EINVAL; } core = inst->core; curr_operating_rate = inst->clk_data.operating_rate >> 16; mutex_lock(&core->lock); max_freq = msm_vidc_max_freq(core); list_for_each_entry(temp, &core->instances, list) { if (temp == inst || temp->state < MSM_VIDC_START_DONE || temp->state >= MSM_VIDC_RELEASE_RESOURCES_DONE) continue; freq += temp->clk_data.min_freq; } freq_left = max_freq - freq; mbs_per_second = msm_comm_get_inst_load_per_core(inst, LOAD_CALC_NO_QUIRKS); cycles = inst->clk_data.entry->vpp_cycles; if (inst->session_type == MSM_VIDC_ENCODER) cycles = inst->flags & VIDC_LOW_POWER ? inst->clk_data.entry->low_power_cycles : cycles; load = cycles * mbs_per_second; ops_left = load ? (freq_left / load) : 0; operating_rate = operating_rate >> 16; if ((curr_operating_rate * (1 + ops_left)) >= operating_rate || msm_vidc_clock_voting || inst->clk_data.buffer_counter < DCVS_FTB_WINDOW) { dprintk(VIDC_DBG, "Requestd operating rate is valid %u\n", operating_rate); rc = 0; } else { dprintk(VIDC_DBG, "Current load is high for requested settings. Cannot set operating rate to %u\n", operating_rate); rc = -EINVAL; } mutex_unlock(&core->lock); return rc; } int msm_comm_scale_clocks(struct msm_vidc_inst *inst) { struct msm_vidc_buffer *temp, *next; Loading drivers/media/platform/msm/vidc/msm_vidc_clocks.h +0 −2 Original line number Diff line number Diff line Loading @@ -8,8 +8,6 @@ #include "msm_vidc_internal.h" void msm_clock_data_reset(struct msm_vidc_inst *inst); int msm_vidc_validate_operating_rate(struct msm_vidc_inst *inst, u32 operating_rate); int msm_vidc_set_clocks(struct msm_vidc_core *core); int msm_comm_vote_bus(struct msm_vidc_core *core); int msm_dcvs_try_enable(struct msm_vidc_inst *inst); Loading drivers/media/platform/msm/vidc/msm_vidc_internal.h +0 −1 Original line number Diff line number Diff line Loading @@ -383,7 +383,6 @@ struct clock_data { u32 work_mode; bool low_latency_mode; bool is_cbr_plus; bool turbo_mode; u32 work_route; u32 dcvs_flags; u32 frame_rate; Loading Loading
drivers/media/platform/msm/vidc/msm_vdec.c +1 −15 Original line number Diff line number Diff line Loading @@ -904,21 +904,7 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) inst->flags |= VIDC_REALTIME; break; case V4L2_CID_MPEG_VIDC_VIDEO_OPERATING_RATE: if (ctrl->val == INT_MAX) { dprintk(VIDC_DBG, "inst(%pK) Request for turbo mode\n", inst); inst->clk_data.turbo_mode = true; } else if (msm_vidc_validate_operating_rate(inst, ctrl->val)) { dprintk(VIDC_ERR, "Failed to set operating rate\n"); rc = -ENOTSUPP; } else { dprintk(VIDC_DBG, "inst(%pK) operating rate changed from %d to %d\n", inst, inst->clk_data.operating_rate >> 16, ctrl->val >> 16); inst->clk_data.operating_rate = ctrl->val; inst->clk_data.turbo_mode = false; } break; case V4L2_CID_MPEG_VIDC_VIDEO_LOWLATENCY_MODE: inst->clk_data.low_latency_mode = !!ctrl->val; Loading
drivers/media/platform/msm/vidc/msm_venc.c +1 −15 Original line number Diff line number Diff line Loading @@ -1496,21 +1496,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) } break; case V4L2_CID_MPEG_VIDC_VIDEO_OPERATING_RATE: if (ctrl->val == INT_MAX) { dprintk(VIDC_DBG, "inst(%pK) Request for turbo mode\n", inst); inst->clk_data.turbo_mode = true; } else if (msm_vidc_validate_operating_rate(inst, ctrl->val)) { dprintk(VIDC_ERR, "Failed to set operating rate\n"); rc = -ENOTSUPP; } else { dprintk(VIDC_DBG, "inst(%pK) operating rate changed from %d to %d\n", inst, inst->clk_data.operating_rate >> 16, ctrl->val >> 16); inst->clk_data.operating_rate = ctrl->val; inst->clk_data.turbo_mode = false; } if (inst->state == MSM_VIDC_START_DONE) { rc = msm_venc_set_operating_rate(inst); if (rc) Loading
drivers/media/platform/msm/vidc/msm_vidc_clocks.c +0 −70 Original line number Diff line number Diff line Loading @@ -888,13 +888,6 @@ int msm_vidc_set_clocks(struct msm_vidc_core *core) break; } if (temp->clk_data.turbo_mode) { dprintk(VIDC_PROF, "Found an instance with Turbo request\n"); freq_core_max = msm_vidc_max_freq(core); decrement = false; break; } /* increment even if one session requested for it */ if (temp->clk_data.dcvs_flags & MSM_VIDC_DCVS_INCR) increment = true; Loading Loading @@ -934,69 +927,6 @@ int msm_vidc_set_clocks(struct msm_vidc_core *core) return rc; } int msm_vidc_validate_operating_rate(struct msm_vidc_inst *inst, u32 operating_rate) { struct msm_vidc_inst *temp; struct msm_vidc_core *core; unsigned long max_freq, freq_left, ops_left, load, cycles, freq = 0; unsigned long mbs_per_second; int rc = 0; u32 curr_operating_rate = 0; if (!inst || !inst->core) { dprintk(VIDC_ERR, "%s Invalid args\n", __func__); return -EINVAL; } core = inst->core; curr_operating_rate = inst->clk_data.operating_rate >> 16; mutex_lock(&core->lock); max_freq = msm_vidc_max_freq(core); list_for_each_entry(temp, &core->instances, list) { if (temp == inst || temp->state < MSM_VIDC_START_DONE || temp->state >= MSM_VIDC_RELEASE_RESOURCES_DONE) continue; freq += temp->clk_data.min_freq; } freq_left = max_freq - freq; mbs_per_second = msm_comm_get_inst_load_per_core(inst, LOAD_CALC_NO_QUIRKS); cycles = inst->clk_data.entry->vpp_cycles; if (inst->session_type == MSM_VIDC_ENCODER) cycles = inst->flags & VIDC_LOW_POWER ? inst->clk_data.entry->low_power_cycles : cycles; load = cycles * mbs_per_second; ops_left = load ? (freq_left / load) : 0; operating_rate = operating_rate >> 16; if ((curr_operating_rate * (1 + ops_left)) >= operating_rate || msm_vidc_clock_voting || inst->clk_data.buffer_counter < DCVS_FTB_WINDOW) { dprintk(VIDC_DBG, "Requestd operating rate is valid %u\n", operating_rate); rc = 0; } else { dprintk(VIDC_DBG, "Current load is high for requested settings. Cannot set operating rate to %u\n", operating_rate); rc = -EINVAL; } mutex_unlock(&core->lock); return rc; } int msm_comm_scale_clocks(struct msm_vidc_inst *inst) { struct msm_vidc_buffer *temp, *next; Loading
drivers/media/platform/msm/vidc/msm_vidc_clocks.h +0 −2 Original line number Diff line number Diff line Loading @@ -8,8 +8,6 @@ #include "msm_vidc_internal.h" void msm_clock_data_reset(struct msm_vidc_inst *inst); int msm_vidc_validate_operating_rate(struct msm_vidc_inst *inst, u32 operating_rate); int msm_vidc_set_clocks(struct msm_vidc_core *core); int msm_comm_vote_bus(struct msm_vidc_core *core); int msm_dcvs_try_enable(struct msm_vidc_inst *inst); Loading
drivers/media/platform/msm/vidc/msm_vidc_internal.h +0 −1 Original line number Diff line number Diff line Loading @@ -383,7 +383,6 @@ struct clock_data { u32 work_mode; bool low_latency_mode; bool is_cbr_plus; bool turbo_mode; u32 work_route; u32 dcvs_flags; u32 frame_rate; Loading