Skip to content

Commit 02678c0

Browse files
committed
Merge back earlier cpufreq changes for 5.19.
2 parents 0f03610 + f346e96 commit 02678c0

File tree

9 files changed

+21
-14
lines changed

9 files changed

+21
-14
lines changed

drivers/cpufreq/cpufreq.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1533,8 +1533,6 @@ static int cpufreq_online(unsigned int cpu)
15331533
for_each_cpu(j, policy->real_cpus)
15341534
remove_cpu_dev_symlink(policy, get_cpu_device(j));
15351535

1536-
up_write(&policy->rwsem);
1537-
15381536
out_offline_policy:
15391537
if (cpufreq_driver->offline)
15401538
cpufreq_driver->offline(policy);
@@ -1543,6 +1541,9 @@ static int cpufreq_online(unsigned int cpu)
15431541
if (cpufreq_driver->exit)
15441542
cpufreq_driver->exit(policy);
15451543

1544+
cpumask_clear(policy->cpus);
1545+
up_write(&policy->rwsem);
1546+
15461547
out_free_policy:
15471548
cpufreq_policy_free(policy);
15481549
return ret;

drivers/cpufreq/cpufreq_governor.c

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,15 @@ static void free_policy_dbs_info(struct policy_dbs_info *policy_dbs,
388388
gov->free(policy_dbs);
389389
}
390390

391+
static void cpufreq_dbs_data_release(struct kobject *kobj)
392+
{
393+
struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
394+
struct dbs_governor *gov = dbs_data->gov;
395+
396+
gov->exit(dbs_data);
397+
kfree(dbs_data);
398+
}
399+
391400
int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
392401
{
393402
struct dbs_governor *gov = dbs_governor_of(policy);
@@ -425,6 +434,7 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
425434
goto free_policy_dbs_info;
426435
}
427436

437+
dbs_data->gov = gov;
428438
gov_attr_set_init(&dbs_data->attr_set, &policy_dbs->list);
429439

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

449459
gov->kobj_type.sysfs_ops = &governor_sysfs_ops;
460+
gov->kobj_type.release = cpufreq_dbs_data_release;
450461
ret = kobject_init_and_add(&dbs_data->attr_set.kobj, &gov->kobj_type,
451462
get_governor_parent_kobj(policy),
452463
"%s", gov->gov.name);
@@ -488,13 +499,8 @@ void cpufreq_dbs_governor_exit(struct cpufreq_policy *policy)
488499

489500
policy->governor_data = NULL;
490501

491-
if (!count) {
492-
if (!have_governor_per_policy())
493-
gov->gdbs_data = NULL;
494-
495-
gov->exit(dbs_data);
496-
kfree(dbs_data);
497-
}
502+
if (!count && !have_governor_per_policy())
503+
gov->gdbs_data = NULL;
498504

499505
free_policy_dbs_info(policy_dbs, gov);
500506

drivers/cpufreq/cpufreq_governor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ enum {OD_NORMAL_SAMPLE, OD_SUB_SAMPLE};
3737
/* Governor demand based switching data (per-policy or global). */
3838
struct dbs_data {
3939
struct gov_attr_set attr_set;
40+
struct dbs_governor *gov;
4041
void *tuners;
4142
unsigned int ignore_nice_load;
4243
unsigned int sampling_rate;

drivers/cpufreq/intel_pstate.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,6 +1322,7 @@ static ssize_t store_no_turbo(struct kobject *a, struct kobj_attribute *b,
13221322
mutex_unlock(&intel_pstate_limits_lock);
13231323

13241324
intel_pstate_update_policies();
1325+
arch_set_max_freq_ratio(global.no_turbo);
13251326

13261327
mutex_unlock(&intel_pstate_driver_lock);
13271328

drivers/cpufreq/pasemi-cpufreq.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
#include <asm/hw_irq.h>
2020
#include <asm/io.h>
21-
#include <asm/prom.h>
2221
#include <asm/time.h>
2322
#include <asm/smp.h>
2423

drivers/cpufreq/pmac32-cpufreq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include <linux/device.h>
2525
#include <linux/hardirq.h>
2626
#include <linux/of_device.h>
27-
#include <asm/prom.h>
27+
2828
#include <asm/machdep.h>
2929
#include <asm/irq.h>
3030
#include <asm/pmac_feature.h>

drivers/cpufreq/pmac64-cpufreq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include <linux/completion.h>
2323
#include <linux/mutex.h>
2424
#include <linux/of_device.h>
25-
#include <asm/prom.h>
25+
2626
#include <asm/machdep.h>
2727
#include <asm/irq.h>
2828
#include <asm/sections.h>

drivers/cpufreq/ppc_cbe_cpufreq.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include <linux/of_platform.h>
1313

1414
#include <asm/machdep.h>
15-
#include <asm/prom.h>
1615
#include <asm/cell-regs.h>
1716

1817
#include "ppc_cbe_cpufreq.h"

drivers/cpufreq/ppc_cbe_cpufreq_pmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
#include <linux/init.h>
1414
#include <linux/of_platform.h>
1515
#include <linux/pm_qos.h>
16+
#include <linux/slab.h>
1617

1718
#include <asm/processor.h>
18-
#include <asm/prom.h>
1919
#include <asm/pmi.h>
2020
#include <asm/cell-regs.h>
2121

0 commit comments

Comments
 (0)