Skip to content

Commit b817f14

Browse files
lukaszluba-armrafaeljw
authored andcommitted
powercap: DTPM: Fix unneeded conversions to micro-Watts
The power values coming from the Energy Model are already in uW. The PowerCap and DTPM frameworks operate on uW, so all places should just use the values from the EM. Fix the code by removing all of the conversion to uW still present in it. Fixes: ae6ccaa (PM: EM: convert power field to micro-Watts precision and align drivers) Cc: 5.19+ <stable@vger.kernel.org> # v5.19+ Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> [ rjw: Changelog edits ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 2cc14f5 commit b817f14

File tree

2 files changed

+4
-13
lines changed

2 files changed

+4
-13
lines changed

drivers/powercap/dtpm_cpu.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#include <linux/of.h>
2525
#include <linux/pm_qos.h>
2626
#include <linux/slab.h>
27-
#include <linux/units.h>
2827

2928
struct dtpm_cpu {
3029
struct dtpm dtpm;
@@ -104,8 +103,7 @@ static u64 get_pd_power_uw(struct dtpm *dtpm)
104103
if (pd->table[i].frequency < freq)
105104
continue;
106105

107-
return scale_pd_power_uw(pd_mask, pd->table[i].power *
108-
MICROWATT_PER_MILLIWATT);
106+
return scale_pd_power_uw(pd_mask, pd->table[i].power);
109107
}
110108

111109
return 0;
@@ -122,11 +120,9 @@ static int update_pd_power_uw(struct dtpm *dtpm)
122120
nr_cpus = cpumask_weight(&cpus);
123121

124122
dtpm->power_min = em->table[0].power;
125-
dtpm->power_min *= MICROWATT_PER_MILLIWATT;
126123
dtpm->power_min *= nr_cpus;
127124

128125
dtpm->power_max = em->table[em->nr_perf_states - 1].power;
129-
dtpm->power_max *= MICROWATT_PER_MILLIWATT;
130126
dtpm->power_max *= nr_cpus;
131127

132128
return 0;

drivers/powercap/dtpm_devfreq.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ static int update_pd_power_uw(struct dtpm *dtpm)
3939
struct em_perf_domain *pd = em_pd_get(dev);
4040

4141
dtpm->power_min = pd->table[0].power;
42-
dtpm->power_min *= MICROWATT_PER_MILLIWATT;
4342

4443
dtpm->power_max = pd->table[pd->nr_perf_states - 1].power;
45-
dtpm->power_max *= MICROWATT_PER_MILLIWATT;
4644

4745
return 0;
4846
}
@@ -54,21 +52,18 @@ static u64 set_pd_power_limit(struct dtpm *dtpm, u64 power_limit)
5452
struct device *dev = devfreq->dev.parent;
5553
struct em_perf_domain *pd = em_pd_get(dev);
5654
unsigned long freq;
57-
u64 power;
5855
int i;
5956

6057
for (i = 0; i < pd->nr_perf_states; i++) {
61-
62-
power = pd->table[i].power * MICROWATT_PER_MILLIWATT;
63-
if (power > power_limit)
58+
if (pd->table[i].power > power_limit)
6459
break;
6560
}
6661

6762
freq = pd->table[i - 1].frequency;
6863

6964
dev_pm_qos_update_request(&dtpm_devfreq->qos_req, freq);
7065

71-
power_limit = pd->table[i - 1].power * MICROWATT_PER_MILLIWATT;
66+
power_limit = pd->table[i - 1].power;
7267

7368
return power_limit;
7469
}
@@ -110,7 +105,7 @@ static u64 get_pd_power_uw(struct dtpm *dtpm)
110105
if (pd->table[i].frequency < freq)
111106
continue;
112107

113-
power = pd->table[i].power * MICROWATT_PER_MILLIWATT;
108+
power = pd->table[i].power;
114109
power *= status.busy_time;
115110
power >>= 10;
116111

0 commit comments

Comments
 (0)