Commit 0e0a8e35 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Bjorn Andersson

arm64: dts: qcom: sdm845: correct dynamic power coefficients

Following sm8150/sm8250 update sdm845 capacity-dmips-mhz and
dynamic-power-coefficient based on the measurements [1], [2].

The energy model dynamic-power-coefficient values were calculated with
    DPC = µW / MHz / V^2
for each OPP, and averaged across all OPPs within each cluster for the
final coefficient. Voltages were obtained from the qcom-cpufreq-hw
driver that reads voltages from the OSM LUT programmed into the SoC.

Normalized DMIPS/MHz capacity scale values for each CPU were calculated
from CoreMarks/MHz (CoreMark iterations per second per MHz), which
serves the same purpose. For each CPU, the final capacity-dmips-mhz
value is the C/MHz value of its maximum frequency normalized to
SCHED_CAPACITY_SCALE (1024) for the fastest CPU in the system.

For more details on measurement process see the commit message for the
commit 6aabed55 ("arm64: dts: qcom: sm8250: Add CPU capacities and
energy model").

[1] https://github.com/kdrag0n/freqbench
[2] https://github.com/kdrag0n/freqbench/tree/master/results/sdm845/main

Cc: Danny Lin <danny@kdrag0n.dev>
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220315141104.730235-1-dmitry.baryshkov@linaro.org
parent 6127d8e4
...@@ -200,8 +200,8 @@ CPU0: cpu@0 { ...@@ -200,8 +200,8 @@ CPU0: cpu@0 {
cpu-idle-states = <&LITTLE_CPU_SLEEP_0 cpu-idle-states = <&LITTLE_CPU_SLEEP_0
&LITTLE_CPU_SLEEP_1 &LITTLE_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
capacity-dmips-mhz = <607>; capacity-dmips-mhz = <611>;
dynamic-power-coefficient = <100>; dynamic-power-coefficient = <290>;
qcom,freq-domain = <&cpufreq_hw 0>; qcom,freq-domain = <&cpufreq_hw 0>;
operating-points-v2 = <&cpu0_opp_table>; operating-points-v2 = <&cpu0_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
...@@ -225,8 +225,8 @@ CPU1: cpu@100 { ...@@ -225,8 +225,8 @@ CPU1: cpu@100 {
cpu-idle-states = <&LITTLE_CPU_SLEEP_0 cpu-idle-states = <&LITTLE_CPU_SLEEP_0
&LITTLE_CPU_SLEEP_1 &LITTLE_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
capacity-dmips-mhz = <607>; capacity-dmips-mhz = <611>;
dynamic-power-coefficient = <100>; dynamic-power-coefficient = <290>;
qcom,freq-domain = <&cpufreq_hw 0>; qcom,freq-domain = <&cpufreq_hw 0>;
operating-points-v2 = <&cpu0_opp_table>; operating-points-v2 = <&cpu0_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
...@@ -247,8 +247,8 @@ CPU2: cpu@200 { ...@@ -247,8 +247,8 @@ CPU2: cpu@200 {
cpu-idle-states = <&LITTLE_CPU_SLEEP_0 cpu-idle-states = <&LITTLE_CPU_SLEEP_0
&LITTLE_CPU_SLEEP_1 &LITTLE_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
capacity-dmips-mhz = <607>; capacity-dmips-mhz = <611>;
dynamic-power-coefficient = <100>; dynamic-power-coefficient = <290>;
qcom,freq-domain = <&cpufreq_hw 0>; qcom,freq-domain = <&cpufreq_hw 0>;
operating-points-v2 = <&cpu0_opp_table>; operating-points-v2 = <&cpu0_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
...@@ -269,8 +269,8 @@ CPU3: cpu@300 { ...@@ -269,8 +269,8 @@ CPU3: cpu@300 {
cpu-idle-states = <&LITTLE_CPU_SLEEP_0 cpu-idle-states = <&LITTLE_CPU_SLEEP_0
&LITTLE_CPU_SLEEP_1 &LITTLE_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
capacity-dmips-mhz = <607>; capacity-dmips-mhz = <611>;
dynamic-power-coefficient = <100>; dynamic-power-coefficient = <290>;
qcom,freq-domain = <&cpufreq_hw 0>; qcom,freq-domain = <&cpufreq_hw 0>;
operating-points-v2 = <&cpu0_opp_table>; operating-points-v2 = <&cpu0_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
...@@ -292,7 +292,7 @@ CPU4: cpu@400 { ...@@ -292,7 +292,7 @@ CPU4: cpu@400 {
cpu-idle-states = <&BIG_CPU_SLEEP_0 cpu-idle-states = <&BIG_CPU_SLEEP_0
&BIG_CPU_SLEEP_1 &BIG_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
dynamic-power-coefficient = <396>; dynamic-power-coefficient = <442>;
qcom,freq-domain = <&cpufreq_hw 1>; qcom,freq-domain = <&cpufreq_hw 1>;
operating-points-v2 = <&cpu4_opp_table>; operating-points-v2 = <&cpu4_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
...@@ -314,7 +314,7 @@ CPU5: cpu@500 { ...@@ -314,7 +314,7 @@ CPU5: cpu@500 {
cpu-idle-states = <&BIG_CPU_SLEEP_0 cpu-idle-states = <&BIG_CPU_SLEEP_0
&BIG_CPU_SLEEP_1 &BIG_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
dynamic-power-coefficient = <396>; dynamic-power-coefficient = <442>;
qcom,freq-domain = <&cpufreq_hw 1>; qcom,freq-domain = <&cpufreq_hw 1>;
operating-points-v2 = <&cpu4_opp_table>; operating-points-v2 = <&cpu4_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
...@@ -336,7 +336,7 @@ CPU6: cpu@600 { ...@@ -336,7 +336,7 @@ CPU6: cpu@600 {
cpu-idle-states = <&BIG_CPU_SLEEP_0 cpu-idle-states = <&BIG_CPU_SLEEP_0
&BIG_CPU_SLEEP_1 &BIG_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
dynamic-power-coefficient = <396>; dynamic-power-coefficient = <442>;
qcom,freq-domain = <&cpufreq_hw 1>; qcom,freq-domain = <&cpufreq_hw 1>;
operating-points-v2 = <&cpu4_opp_table>; operating-points-v2 = <&cpu4_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
...@@ -358,7 +358,7 @@ CPU7: cpu@700 { ...@@ -358,7 +358,7 @@ CPU7: cpu@700 {
cpu-idle-states = <&BIG_CPU_SLEEP_0 cpu-idle-states = <&BIG_CPU_SLEEP_0
&BIG_CPU_SLEEP_1 &BIG_CPU_SLEEP_1
&CLUSTER_SLEEP_0>; &CLUSTER_SLEEP_0>;
dynamic-power-coefficient = <396>; dynamic-power-coefficient = <442>;
qcom,freq-domain = <&cpufreq_hw 1>; qcom,freq-domain = <&cpufreq_hw 1>;
operating-points-v2 = <&cpu4_opp_table>; operating-points-v2 = <&cpu4_opp_table>;
interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment