Răsfoiți Sursa

video: driver: set clock rate to max for DRC or DRAIN substates

Increase clock rate to maximum in case of DRC or
DRAIN substates to speed up DRC or DRAIN sequences.

Change-Id: I0fd63b97267d37c18ad2d05069ab494b1b37fea8
Signed-off-by: Deepa Guthyappa Madivalara <[email protected]>
Deepa Guthyappa Madivalara 3 ani în urmă
părinte
comite
267e11c2a4
2 a modificat fișierele cu 8 adăugiri și 1 ștergeri
  1. 4 0
      driver/vidc/src/msm_vidc_driver.c
  2. 4 1
      driver/vidc/src/msm_vidc_power.c

+ 4 - 0
driver/vidc/src/msm_vidc_driver.c

@@ -1879,6 +1879,8 @@ int msm_vidc_process_drain(struct msm_vidc_inst *inst)
 	if (rc)
 		return rc;
 
+	msm_vidc_scale_power(inst, true);
+
 	return rc;
 }
 
@@ -1893,6 +1895,8 @@ int msm_vidc_process_resume(struct msm_vidc_inst *inst)
 		return -EINVAL;
 	}
 
+	msm_vidc_scale_power(inst, true);
+
 	/* first check DRC pending else check drain pending */
 	if (is_sub_state(inst, MSM_VIDC_DRC) &&
 		is_sub_state(inst, MSM_VIDC_DRC_LAST_BUFFER)) {

+ 4 - 1
driver/vidc/src/msm_vidc_power.c

@@ -470,7 +470,10 @@ int msm_vidc_scale_clocks(struct msm_vidc_inst *inst)
 	}
 	core = inst->core;
 
-	if (inst->power.buffer_counter < DCVS_WINDOW || is_image_session(inst)) {
+	if (inst->power.buffer_counter < DCVS_WINDOW ||
+	    is_image_session(inst) ||
+	    is_sub_state(inst, MSM_VIDC_DRC) ||
+	    is_sub_state(inst, MSM_VIDC_DRAIN)) {
 		inst->power.min_freq = msm_vidc_max_freq(inst);
 		inst->power.dcvs_flags = 0;
 	} else if (msm_vidc_clock_voting) {