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
Цей коміт міститься в:
Deepa Guthyappa Madivalara
2022-03-29 17:35:54 -07:00
джерело accb365696
коміт ab684e15f6
11 змінених файлів з 155 додано та 130 видалено

Переглянути файл

@@ -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;
/*