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

Merge back earlier cpufreq changes for 5.19.

parents 0f03610b f346e962
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1533,8 +1533,6 @@ static int cpufreq_online(unsigned int cpu)
	for_each_cpu(j, policy->real_cpus)
		remove_cpu_dev_symlink(policy, get_cpu_device(j));

	up_write(&policy->rwsem);

out_offline_policy:
	if (cpufreq_driver->offline)
		cpufreq_driver->offline(policy);
@@ -1543,6 +1541,9 @@ static int cpufreq_online(unsigned int cpu)
	if (cpufreq_driver->exit)
		cpufreq_driver->exit(policy);

	cpumask_clear(policy->cpus);
	up_write(&policy->rwsem);

out_free_policy:
	cpufreq_policy_free(policy);
	return ret;
+13 −7
Original line number Diff line number Diff line
@@ -388,6 +388,15 @@ static void free_policy_dbs_info(struct policy_dbs_info *policy_dbs,
	gov->free(policy_dbs);
}

static void cpufreq_dbs_data_release(struct kobject *kobj)
{
	struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
	struct dbs_governor *gov = dbs_data->gov;

	gov->exit(dbs_data);
	kfree(dbs_data);
}

int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
{
	struct dbs_governor *gov = dbs_governor_of(policy);
@@ -425,6 +434,7 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
		goto free_policy_dbs_info;
	}

	dbs_data->gov = gov;
	gov_attr_set_init(&dbs_data->attr_set, &policy_dbs->list);

	ret = gov->init(dbs_data);
@@ -447,6 +457,7 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
	policy->governor_data = policy_dbs;

	gov->kobj_type.sysfs_ops = &governor_sysfs_ops;
	gov->kobj_type.release = cpufreq_dbs_data_release;
	ret = kobject_init_and_add(&dbs_data->attr_set.kobj, &gov->kobj_type,
				   get_governor_parent_kobj(policy),
				   "%s", gov->gov.name);
@@ -488,14 +499,9 @@ void cpufreq_dbs_governor_exit(struct cpufreq_policy *policy)

	policy->governor_data = NULL;

	if (!count) {
		if (!have_governor_per_policy())
	if (!count && !have_governor_per_policy())
		gov->gdbs_data = NULL;

		gov->exit(dbs_data);
		kfree(dbs_data);
	}

	free_policy_dbs_info(policy_dbs, gov);

	mutex_unlock(&gov_dbs_data_mutex);
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ enum {OD_NORMAL_SAMPLE, OD_SUB_SAMPLE};
/* Governor demand based switching data (per-policy or global). */
struct dbs_data {
	struct gov_attr_set attr_set;
	struct dbs_governor *gov;
	void *tuners;
	unsigned int ignore_nice_load;
	unsigned int sampling_rate;
+1 −0
Original line number Diff line number Diff line
@@ -1322,6 +1322,7 @@ static ssize_t store_no_turbo(struct kobject *a, struct kobj_attribute *b,
	mutex_unlock(&intel_pstate_limits_lock);

	intel_pstate_update_policies();
	arch_set_max_freq_ratio(global.no_turbo);

	mutex_unlock(&intel_pstate_driver_lock);

+0 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@

#include <asm/hw_irq.h>
#include <asm/io.h>
#include <asm/prom.h>
#include <asm/time.h>
#include <asm/smp.h>

Loading