video driver: calculate power based on max rate
1. Remove load based admission control for decoder. 2. For decoder, use max of frame rate, operating rate, timestamp rate and input rate for power calculations. 3. For encoder, use max of frame rate and operating rate for power calculations. Change-Id: Ibdb2d4b29438d7f656a27771953d10e0a0e72edd
Цей коміт міститься в:
@@ -21,8 +21,7 @@ u64 msm_vidc_calc_freq_iris3(struct msm_vidc_inst *inst, u32 data_size)
|
||||
u32 mbs_per_second;
|
||||
u32 operating_rate, vsp_factor_num = 1, vsp_factor_den = 1;
|
||||
u32 base_cycles = 0;
|
||||
u32 fps;
|
||||
u32 buf_timetamps_fps, mbpf, input_rate;
|
||||
u32 fps, mbpf;
|
||||
|
||||
if (!inst || !inst->core || !inst->capabilities) {
|
||||
d_vpr_e("%s: invalid params\n", __func__);
|
||||
@@ -36,29 +35,7 @@ u64 msm_vidc_calc_freq_iris3(struct msm_vidc_inst *inst, u32 data_size)
|
||||
}
|
||||
|
||||
mbpf = msm_vidc_get_mbs_per_frame(inst);
|
||||
fps = msm_vidc_get_fps(inst);
|
||||
|
||||
buf_timetamps_fps = msm_vidc_calc_window_avg_framerate(inst);
|
||||
|
||||
/*
|
||||
* when buffer detected fps is more than client set value by 10%,
|
||||
* utilize buffer detected fps to scale clock.
|
||||
*/
|
||||
if (div_u64(fps * 11, 10) < buf_timetamps_fps) {
|
||||
fps = buf_timetamps_fps;
|
||||
inst->priority_level = MSM_VIDC_PRIORITY_LOW;
|
||||
}
|
||||
if (!is_realtime_session(inst)) {
|
||||
input_rate = msm_vidc_get_input_rate(inst);
|
||||
if (input_rate > fps) {
|
||||
fps = input_rate;
|
||||
/*
|
||||
* add 12.5% more fps to increase power to make firmware
|
||||
* processing little faster than client queuing rate
|
||||
*/
|
||||
fps = fps + fps / 8;
|
||||
}
|
||||
}
|
||||
fps = inst->max_rate;
|
||||
mbs_per_second = mbpf * fps;
|
||||
|
||||
/*
|
||||
|
Посилання в новій задачі
Заблокувати користувача