regulator: cpr3: Update temp based adjustments config

Temp_adj_en instantaneously reduces the voltage and quotient
when temperature enters into corresponding band which may cause
an aggressive reduction in voltage. Avoid this by not configuring
temp_adj_en bit, this only reduces the quotient and allows CPR to
react to the reduced quotient. Use temp_adj_en bit only when both
temperature based and core count based adjustments are desired.

CRs-Fixed: 1051076
Change-Id: Ia42dbdd095e51bf9b9b7e865c104dcbe8f4219da
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
This commit is contained in:
Tirupathi Reddy 2016-07-04 09:53:14 +05:30 committed by Gerrit - the friendly Code Review server
parent 6f55033ecf
commit 4f849986b3

View file

@ -1011,7 +1011,8 @@ static int cpr3_controller_program_sdelta(struct cpr3_controller *ctrl)
max_core_count << CPR4_MARGIN_ADJ_CTL_MAX_NUM_CORES_SHIFT
| ((sdelta->allow_core_count_adj || sdelta->allow_boost)
? CPR4_MARGIN_ADJ_CTL_CORE_ADJ_EN : 0)
| ((sdelta->allow_temp_adj && ctrl->supports_hw_closed_loop)
| ((sdelta->allow_temp_adj && ctrl->supports_hw_closed_loop
&& sdelta->allow_core_count_adj)
? CPR4_MARGIN_ADJ_CTL_TEMP_ADJ_EN : 0)
| (((ctrl->use_hw_closed_loop && !sdelta->allow_boost)
|| !ctrl->supports_hw_closed_loop)