Skip to content

Commit a6b3125

Browse files
committed
Merge branch 'powercap'
Merge a power capping fix for 6.7-rc4 which eliminates unnecessary and harmful conversions to uW from the DTPM (dynamic thermal and power management) framework (Lukasz Luba). * powercap: powercap: DTPM: Fix unneeded conversions to micro-Watts
2 parents 142c169 + b817f14 commit a6b3125

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)