Commit a6b31256 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

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
parents 142c169b b817f148
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@
#include <linux/of.h>
#include <linux/pm_qos.h>
#include <linux/slab.h>
#include <linux/units.h>

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

		return scale_pd_power_uw(pd_mask, pd->table[i].power *
					 MICROWATT_PER_MILLIWATT);
		return scale_pd_power_uw(pd_mask, pd->table[i].power);
	}

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

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

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

	return 0;
+3 −8
Original line number Diff line number Diff line
@@ -39,10 +39,8 @@ static int update_pd_power_uw(struct dtpm *dtpm)
	struct em_perf_domain *pd = em_pd_get(dev);

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

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

	return 0;
}
@@ -54,13 +52,10 @@ static u64 set_pd_power_limit(struct dtpm *dtpm, u64 power_limit)
	struct device *dev = devfreq->dev.parent;
	struct em_perf_domain *pd = em_pd_get(dev);
	unsigned long freq;
	u64 power;
	int i;

	for (i = 0; i < pd->nr_perf_states; i++) {

		power = pd->table[i].power * MICROWATT_PER_MILLIWATT;
		if (power > power_limit)
		if (pd->table[i].power > power_limit)
			break;
	}

@@ -68,7 +63,7 @@ static u64 set_pd_power_limit(struct dtpm *dtpm, u64 power_limit)

	dev_pm_qos_update_request(&dtpm_devfreq->qos_req, freq);

	power_limit = pd->table[i - 1].power * MICROWATT_PER_MILLIWATT;
	power_limit = pd->table[i - 1].power;

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

		power = pd->table[i].power * MICROWATT_PER_MILLIWATT;
		power = pd->table[i].power;
		power *= status.busy_time;
		power >>= 10;