CPUFreq: Minor cleanups for 3.15
Subsystems (6)
Viresh Kumar
maintainercover CPUFreq: Minor cleanups for 3.15
Here are few minor cleanups for cpufreq core and drivers. The first two removes per-cpu cpufreq_show_table variable and moves that information in struct cpufreq_policy. And the last one removes unnecessary frozen variable/parameters.
Just rebased over latest bleeding-edge branch and resent.
Viresh Kumar (3):
cpufreq: add 'freq_table' in struct cpufreq_policy
cpufreq: Remove cpufreq_generic_exit()
cpufreq: Remove unnecessary variable/parameter 'frozen'
drivers/cpufreq/acpi-cpufreq.c | 1 - drivers/cpufreq/arm_big_little.c | 1 - drivers/cpufreq/blackfin-cpufreq.c | 1 - drivers/cpufreq/cpufreq-cpu0.c | 1 - drivers/cpufreq/cpufreq.c | 58 ++++++++++++++++------------------ drivers/cpufreq/cris-artpec3-cpufreq.c | 1 - drivers/cpufreq/cris-etraxfs-cpufreq.c | 1 - drivers/cpufreq/davinci-cpufreq.c | 1 - drivers/cpufreq/e_powersaver.c | 1 - drivers/cpufreq/elanfreq.c | 1 - drivers/cpufreq/exynos-cpufreq.c | 1 - drivers/cpufreq/exynos5440-cpufreq.c | 1 - drivers/cpufreq/freq_table.c | 46 +++++---------------------- drivers/cpufreq/ia64-acpi-cpufreq.c | 1 - drivers/cpufreq/imx6q-cpufreq.c | 1 - drivers/cpufreq/kirkwood-cpufreq.c | 1 - drivers/cpufreq/longhaul.c | 1 - drivers/cpufreq/loongson2_cpufreq.c | 1 - drivers/cpufreq/omap-cpufreq.c | 1 - drivers/cpufreq/p4-clockmod.c | 1 - drivers/cpufreq/pasemi-cpufreq.c | 1 - drivers/cpufreq/powernow-k6.c | 1 - drivers/cpufreq/powernow-k7.c | 2 -- drivers/cpufreq/powernow-k8.c | 2 -- drivers/cpufreq/ppc-corenet-cpufreq.c | 1 - drivers/cpufreq/ppc_cbe_cpufreq.c | 1 - drivers/cpufreq/pxa2xx-cpufreq.c | 1 - drivers/cpufreq/pxa3xx-cpufreq.c | 1 - drivers/cpufreq/sc520_freq.c | 1 - drivers/cpufreq/sh-cpufreq.c | 1 - drivers/cpufreq/sparc-us2e-cpufreq.c | 4 +-- drivers/cpufreq/sparc-us3-cpufreq.c | 4 +-- drivers/cpufreq/spear-cpufreq.c | 1 - drivers/cpufreq/speedstep-centrino.c | 2 -- drivers/cpufreq/speedstep-ich.c | 1 - drivers/cpufreq/speedstep-smi.c | 1 - drivers/cpufreq/tegra-cpufreq.c | 1 - include/linux/cpufreq.h | 11 +------ 38 files changed, 39 insertions(+), 120 deletions(-)
Signature · 1 line
1.7.12.rc2.18.g61b472e
Viresh Kumar
maintainerPATCH RESEND 1/3 cpufreq: add 'freq_table' in struct cpufreq_policy
freq table is not per CPU but per policy and so it makes more sense to keep it within struct cpufreq_policy instead of a per-cpu variable.
This patch does it. Over that there is no need to set policy->freq_table to NULL in ->exit(), as policy structure is going to be freed soon.
--- drivers/cpufreq/acpi-cpufreq.c | 1 - drivers/cpufreq/arm_big_little.c | 1 - drivers/cpufreq/cpufreq.c | 7 +++++- drivers/cpufreq/e_powersaver.c | 1 - drivers/cpufreq/freq_table.c | 46 ++++++----------------------------- drivers/cpufreq/ia64-acpi-cpufreq.c | 1 - drivers/cpufreq/loongson2_cpufreq.c | 1 - drivers/cpufreq/omap-cpufreq.c | 1 - drivers/cpufreq/pasemi-cpufreq.c | 1 - drivers/cpufreq/powernow-k6.c | 1 - drivers/cpufreq/powernow-k7.c | 2 -- drivers/cpufreq/powernow-k8.c | 2 -- drivers/cpufreq/ppc-corenet-cpufreq.c | 1 - drivers/cpufreq/sh-cpufreq.c | 1 - drivers/cpufreq/sparc-us2e-cpufreq.c | 4 +-- drivers/cpufreq/sparc-us3-cpufreq.c | 4 +-- drivers/cpufreq/speedstep-centrino.c | 2 -- drivers/cpufreq/tegra-cpufreq.c | 1 - include/linux/cpufreq.h | 6 +---- 19 files changed, 17 insertions(+), 67 deletions(-)
drivers/cpufreq/acpi-cpufreq.c +0 -1
@@ -855,7 +855,6 @@ static int acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)pr_debug ("acpi_cpufreq_cpu_exit\n" );if (data) { -cpufreq_frequency_table_put_attr (policy->cpu);per_cpu (acfreq_data, policy->cpu) =NULL ;acpi_processor_unregister_performance (data->acpi_data, policy->cpu);
drivers/cpufreq/arm_big_little.c +0 -1
@@ -478,7 +478,6 @@ static int bL_cpufreq_exit(struct cpufreq_policy *policy)return -ENODEV ; } -cpufreq_frequency_table_put_attr (policy->cpu);put_cluster_clk_and_freq_table (cpu_dev);dev_dbg (cpu_dev,"%s: Exited, cpu: %d\n" , __func__, policy->cpu);
drivers/cpufreq/cpufreq.c +6 -1
@@ -191,6 +191,12 @@ unsigned int cpufreq_generic_get(unsigned int cpu) }EXPORT_SYMBOL_GPL (cpufreq_generic_get); +/* Only for cpufreq core internal use */ +struct cpufreq_policy *cpufreq_cpu_get_raw (unsigned int cpu) +{ +return per_cpu (cpufreq_cpu_data, cpu); +} +struct cpufreq_policy *cpufreq_cpu_get (unsigned int cpu) {struct cpufreq_policy *policy =NULL ;
@@ -1032,7 +1038,6 @@ static void update_policy_cpu(struct cpufreq_policy *policy, unsigned int cpu)up_write (&policy->rwsem); -cpufreq_frequency_table_update_policy_cpu (policy);blocking_notifier_call_chain (&cpufreq_policy_notifier_list,CPUFREQ_UPDATE_POLICY_CPU , policy); }
drivers/cpufreq/e_powersaver.c +0 -1
@@ -382,7 +382,6 @@ static int eps_cpu_exit(struct cpufreq_policy *policy)unsigned int cpu = policy->cpu;/* Bye */ -cpufreq_frequency_table_put_attr (policy->cpu);kfree (eps_cpu[cpu]); eps_cpu[cpu] =NULL ;return 0 ;
drivers/cpufreq/freq_table.c +8 -38
88 lines not on this page · raw message
drivers/cpufreq/ia64-acpi-cpufreq.c +0 -1
@@ -332,7 +332,6 @@ acpi_cpufreq_cpu_exit (pr_debug ("acpi_cpufreq_cpu_exit\n" );if (data) { -cpufreq_frequency_table_put_attr (policy->cpu); acpi_io_data[policy->cpu] =NULL ;acpi_processor_unregister_performance (&data->acpi_data, policy->cpu);
drivers/cpufreq/loongson2_cpufreq.c +0 -1
@@ -104,7 +104,6 @@ static int loongson2_cpufreq_cpu_init(struct cpufreq_policy *policy)static int loongson2_cpufreq_exit (struct cpufreq_policy *policy) { -cpufreq_frequency_table_put_attr (policy->cpu);clk_put (policy->clk);return 0 ; }
drivers/cpufreq/omap-cpufreq.c +0 -1
@@ -143,7 +143,6 @@ fail:static int omap_cpu_exit (struct cpufreq_policy *policy) { -cpufreq_frequency_table_put_attr (policy->cpu);freq_table_free ();clk_put (policy->clk);return 0 ;
drivers/cpufreq/pasemi-cpufreq.c +0 -1
@@ -234,7 +234,6 @@ static int pas_cpufreq_cpu_exit(struct cpufreq_policy *policy)if (sdcpwr_mapbase)iounmap (sdcpwr_mapbase); -cpufreq_frequency_table_put_attr (policy->cpu);return 0 ; }
drivers/cpufreq/powernow-k6.c +0 -1
@@ -231,7 +231,6 @@ static int powernow_k6_cpu_exit(struct cpufreq_policy *policy)if (i == max_multiplier)powernow_k6_target (policy, i); } -cpufreq_frequency_table_put_attr (policy->cpu);return 0 ; }
drivers/cpufreq/powernow-k7.c +0 -2
@@ -664,8 +664,6 @@ static int powernow_cpu_init(struct cpufreq_policy *policy)static int powernow_cpu_exit (struct cpufreq_policy *policy) { -cpufreq_frequency_table_put_attr (policy->cpu); -#ifdef CONFIG_X86_POWERNOW_K7_ACPI if (acpi_processor_perf) {acpi_processor_unregister_performance (acpi_processor_perf,0 );
drivers/cpufreq/powernow-k8.c +0 -2
@@ -1164,8 +1164,6 @@ static int powernowk8_cpu_exit(struct cpufreq_policy *pol)powernow_k8_cpu_exit_acpi (data); -cpufreq_frequency_table_put_attr (pol->cpu); -kfree (data->powernow_table);kfree (data);for_each_cpu (cpu, pol->cpus)
drivers/cpufreq/ppc-corenet-cpufreq.c +0 -1
@@ -228,7 +228,6 @@ static int __exit corenet_cpufreq_cpu_exit(struct cpufreq_policy *policy)struct cpu_data *data =per_cpu (cpu_data, policy->cpu);unsigned int cpu; -cpufreq_frequency_table_put_attr (policy->cpu);of_node_put (data->parent);kfree (data->table);kfree (data);
drivers/cpufreq/sh-cpufreq.c +0 -1
@@ -143,7 +143,6 @@ static int sh_cpufreq_cpu_exit(struct cpufreq_policy *policy)unsigned int cpu = policy->cpu;struct clk *cpuclk = &per_cpu (sh_cpuclk, cpu); -cpufreq_frequency_table_put_attr (cpu);clk_put (cpuclk);return 0 ;
drivers/cpufreq/sparc-us2e-cpufreq.c +1 -3
@@ -301,10 +301,8 @@ static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy)static int us2e_freq_cpu_exit (struct cpufreq_policy *policy) { -if (cpufreq_us2e_driver) { -cpufreq_frequency_table_put_attr (policy->cpu); +if (cpufreq_us2e_driver)us2e_freq_target (policy,0 ); - }return 0 ; }
drivers/cpufreq/sparc-us3-cpufreq.c +1 -3
@@ -156,10 +156,8 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)static int us3_freq_cpu_exit (struct cpufreq_policy *policy) { -if (cpufreq_us3_driver) { -cpufreq_frequency_table_put_attr (policy->cpu); +if (cpufreq_us3_driver)us3_freq_target (policy,0 ); - }return 0 ; }
drivers/cpufreq/speedstep-centrino.c +0 -2
@@ -406,8 +406,6 @@ static int centrino_cpu_exit(struct cpufreq_policy *policy)if (!per_cpu (centrino_model, cpu))return -ENODEV ; -cpufreq_frequency_table_put_attr (cpu); -per_cpu (centrino_model, cpu) =NULL ;return 0 ;
drivers/cpufreq/tegra-cpufreq.c +0 -1
@@ -136,7 +136,6 @@ static int tegra_cpu_init(struct cpufreq_policy *policy)static int tegra_cpu_exit (struct cpufreq_policy *policy) { -cpufreq_frequency_table_put_attr (policy->cpu);clk_disable_unprepare (cpu_clk);clk_disable_unprepare (emc_clk);return 0 ;
include/linux/cpufreq.h +1 -5
@@ -85,6 +85,7 @@ struct cpufreq_policy {* called, but you're in IRQ context */ struct cpufreq_real_policy user_policy; +struct cpufreq_frequency_table *freq_table;struct list_head policy_list;struct kobject kobj;
@@ -474,7 +475,6 @@ int cpufreq_frequency_table_target(struct cpufreq_policy *policy,int cpufreq_frequency_table_get_index (struct cpufreq_policy *policy,unsigned int freq); -void cpufreq_frequency_table_update_policy_cpu (struct cpufreq_policy *policy);ssize_t cpufreq_show_cpus (const struct cpumask *mask,char *buf);#ifdef CONFIG_CPU_FREQ
@@ -501,9 +501,6 @@ struct cpufreq_frequency_table *cpufreq_frequency_get_table(unsigned int cpu);/* the following are really really optional */ extern struct freq_attr cpufreq_freq_attr_scaling_available_freqs;extern struct freq_attr *cpufreq_generic_attr[]; -void cpufreq_frequency_table_get_attr (struct cpufreq_frequency_table *table, -unsigned int cpu); -void cpufreq_frequency_table_put_attr (unsigned int cpu);int cpufreq_table_validate_and_show (struct cpufreq_policy *policy,struct cpufreq_frequency_table *table);
@@ -513,7 +510,6 @@ int cpufreq_generic_init(struct cpufreq_policy *policy, unsigned int transition_latency);static inline int cpufreq_generic_exit (struct cpufreq_policy *policy) { -cpufreq_frequency_table_put_attr (policy->cpu);return 0 ; }
Signature · 1 line
1.7.12.rc2.18.g61b472e
Viresh Kumar
maintainerPATCH RESEND 2/3 cpufreq: Remove cpufreq_generic_exit()
In reply to Viresh Kumarcpufreq_generic_exit() is empty now and so can be deleted.
--- drivers/cpufreq/blackfin-cpufreq.c | 1 - drivers/cpufreq/cpufreq-cpu0.c | 1 - drivers/cpufreq/cris-artpec3-cpufreq.c | 1 - drivers/cpufreq/cris-etraxfs-cpufreq.c | 1 - drivers/cpufreq/davinci-cpufreq.c | 1 - drivers/cpufreq/elanfreq.c | 1 - drivers/cpufreq/exynos-cpufreq.c | 1 - drivers/cpufreq/exynos5440-cpufreq.c | 1 - drivers/cpufreq/imx6q-cpufreq.c | 1 - drivers/cpufreq/kirkwood-cpufreq.c | 1 - drivers/cpufreq/longhaul.c | 1 - drivers/cpufreq/p4-clockmod.c | 1 - drivers/cpufreq/ppc_cbe_cpufreq.c | 1 - drivers/cpufreq/pxa2xx-cpufreq.c | 1 - drivers/cpufreq/pxa3xx-cpufreq.c | 1 - drivers/cpufreq/sc520_freq.c | 1 - drivers/cpufreq/spear-cpufreq.c | 1 - drivers/cpufreq/speedstep-ich.c | 1 - drivers/cpufreq/speedstep-smi.c | 1 - include/linux/cpufreq.h | 5 ----- 20 files changed, 24 deletions(-)
drivers/cpufreq/blackfin-cpufreq.c +0 -1
@@ -195,7 +195,6 @@ static struct cpufreq_driver bfin_driver = { .target_index = bfin_target, .get = bfin_getfreq_khz, .init = __bfin_cpu_init, - .exit = cpufreq_generic_exit, .name = "bfin cpufreq", .attr = cpufreq_generic_attr, };
drivers/cpufreq/cpufreq-cpu0.c +0 -1
@@ -109,7 +109,6 @@ static struct cpufreq_driver cpu0_cpufreq_driver = { .target_index = cpu0_set_target, .get = cpufreq_generic_get, .init = cpu0_cpufreq_init, - .exit = cpufreq_generic_exit, .name = "generic_cpu0", .attr = cpufreq_generic_attr, };
drivers/cpufreq/cris-artpec3-cpufreq.c +0 -1
@@ -57,7 +57,6 @@ static struct cpufreq_driver cris_freq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = cris_freq_target, .init = cris_freq_cpu_init, - .exit = cpufreq_generic_exit, .name = "cris_freq", .attr = cpufreq_generic_attr, };
drivers/cpufreq/cris-etraxfs-cpufreq.c +0 -1
@@ -57,7 +57,6 @@ static struct cpufreq_driver cris_freq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = cris_freq_target, .init = cris_freq_cpu_init, - .exit = cpufreq_generic_exit, .name = "cris_freq", .attr = cpufreq_generic_attr, };
drivers/cpufreq/davinci-cpufreq.c +0 -1
@@ -125,7 +125,6 @@ static struct cpufreq_driver davinci_driver = { .target_index = davinci_target, .get = cpufreq_generic_get, .init = davinci_cpu_init, - .exit = cpufreq_generic_exit, .name = "davinci", .attr = cpufreq_generic_attr, };
drivers/cpufreq/elanfreq.c +0 -1
@@ -198,7 +198,6 @@ static struct cpufreq_driver elanfreq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = elanfreq_target, .init = elanfreq_cpu_init, - .exit = cpufreq_generic_exit, .name = "elanfreq", .attr = cpufreq_generic_attr, };
drivers/cpufreq/exynos-cpufreq.c +0 -1
@@ -145,7 +145,6 @@ static struct cpufreq_driver exynos_driver = { .target_index = exynos_target, .get = cpufreq_generic_get, .init = exynos_cpufreq_cpu_init, - .exit = cpufreq_generic_exit, .name = "exynos_cpufreq", .attr = cpufreq_generic_attr,#ifdef CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW
drivers/cpufreq/exynos5440-cpufreq.c +0 -1
@@ -312,7 +312,6 @@ static struct cpufreq_driver exynos_driver = { .target_index = exynos_target, .get = cpufreq_generic_get, .init = exynos_cpufreq_cpu_init, - .exit = cpufreq_generic_exit, .name = CPUFREQ_NAME, .attr = cpufreq_generic_attr, };
drivers/cpufreq/imx6q-cpufreq.c +0 -1
@@ -144,7 +144,6 @@ static struct cpufreq_driver imx6q_cpufreq_driver = { .target_index = imx6q_set_target, .get = cpufreq_generic_get, .init = imx6q_cpufreq_init, - .exit = cpufreq_generic_exit, .name = "imx6q-cpufreq", .attr = cpufreq_generic_attr, };
drivers/cpufreq/kirkwood-cpufreq.c +0 -1
@@ -102,7 +102,6 @@ static struct cpufreq_driver kirkwood_cpufreq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = kirkwood_cpufreq_target, .init = kirkwood_cpufreq_cpu_init, - .exit = cpufreq_generic_exit, .name = "kirkwood-cpufreq", .attr = cpufreq_generic_attr, };
drivers/cpufreq/longhaul.c +0 -1
@@ -913,7 +913,6 @@ static struct cpufreq_driver longhaul_driver = { .target_index = longhaul_target, .get = longhaul_get, .init = longhaul_cpu_init, - .exit = cpufreq_generic_exit, .name = "longhaul", .attr = cpufreq_generic_attr, };
drivers/cpufreq/p4-clockmod.c +0 -1
@@ -237,7 +237,6 @@ static struct cpufreq_driver p4clockmod_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = cpufreq_p4_target, .init = cpufreq_p4_cpu_init, - .exit = cpufreq_generic_exit, .get = cpufreq_p4_get, .name = "p4-clockmod", .attr = cpufreq_generic_attr,
drivers/cpufreq/ppc_cbe_cpufreq.c +0 -1
@@ -141,7 +141,6 @@ static struct cpufreq_driver cbe_cpufreq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = cbe_cpufreq_target, .init = cbe_cpufreq_cpu_init, - .exit = cpufreq_generic_exit, .name = "cbe-cpufreq", .flags = CPUFREQ_CONST_LOOPS, };
drivers/cpufreq/pxa2xx-cpufreq.c +0 -1
@@ -427,7 +427,6 @@ static struct cpufreq_driver pxa_cpufreq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = pxa_set_target, .init = pxa_cpufreq_init, - .exit = cpufreq_generic_exit, .get = pxa_cpufreq_get, .name = "PXA2xx", };
drivers/cpufreq/pxa3xx-cpufreq.c +0 -1
@@ -205,7 +205,6 @@ static struct cpufreq_driver pxa3xx_cpufreq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = pxa3xx_cpufreq_set, .init = pxa3xx_cpufreq_init, - .exit = cpufreq_generic_exit, .get = pxa3xx_cpufreq_get, .name = "pxa3xx-cpufreq", };
drivers/cpufreq/sc520_freq.c +0 -1
@@ -93,7 +93,6 @@ static struct cpufreq_driver sc520_freq_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = sc520_freq_target, .init = sc520_freq_cpu_init, - .exit = cpufreq_generic_exit, .name = "sc520_freq", .attr = cpufreq_generic_attr, };
drivers/cpufreq/spear-cpufreq.c +0 -1
@@ -163,7 +163,6 @@ static struct cpufreq_driver spear_cpufreq_driver = { .target_index = spear_cpufreq_target, .get = cpufreq_generic_get, .init = spear_cpufreq_init, - .exit = cpufreq_generic_exit, .attr = cpufreq_generic_attr, };
drivers/cpufreq/speedstep-ich.c +0 -1
@@ -311,7 +311,6 @@ static struct cpufreq_driver speedstep_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = speedstep_target, .init = speedstep_cpu_init, - .exit = cpufreq_generic_exit, .get = speedstep_get, .attr = cpufreq_generic_attr, };
drivers/cpufreq/speedstep-smi.c +0 -1
@@ -280,7 +280,6 @@ static struct cpufreq_driver speedstep_driver = { .verify = cpufreq_generic_frequency_table_verify, .target_index = speedstep_target, .init = speedstep_cpu_init, - .exit = cpufreq_generic_exit, .get = speedstep_get, .resume = speedstep_resume, .attr = cpufreq_generic_attr,
include/linux/cpufreq.h +0 -5
@@ -508,9 +508,4 @@ unsigned int cpufreq_generic_get(unsigned int cpu);int cpufreq_generic_init (struct cpufreq_policy *policy,struct cpufreq_frequency_table *table,unsigned int transition_latency); -static inline int cpufreq_generic_exit (struct cpufreq_policy *policy) -{ -return 0 ; -} -#endif /* _LINUX_CPUFREQ_H */
Signature · 1 line
1.7.12.rc2.18.g61b472e
Viresh Kumar
maintainerPATCH RESEND 3/3 cpufreq: Remove unnecessary variable/parameter 'frozen'
In reply to Viresh KumarWe have used 'frozen' variable/function parameter at many places to differentiate CPU hotplugging on suspend/resume vs sysfs removals. We now have another variable cpufreq_suspended which can be used in these cases and hence we can get rid of all those variables or function parameters.
--- drivers/cpufreq/cpufreq.c | 51 ++++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 29 deletions(-)
drivers/cpufreq/cpufreq.c +22 -29
@@ -1042,13 +1042,13 @@ static void update_policy_cpu(struct cpufreq_policy *policy, unsigned int cpu) CPUFREQ_UPDATE_POLICY_CPU, policy); } -static int __cpufreq_add_dev (struct device *dev,struct subsys_interface *sif, -bool frozen) +static int __cpufreq_add_dev (struct device *dev,struct subsys_interface *sif) {unsigned int j, cpu = dev->id;int ret = -ENOMEM ;struct cpufreq_policy *policy;unsigned long flags; +bool recover_policy = cpufreq_suspended;#ifdef CONFIG_HOTPLUG_CPU struct cpufreq_policy *tpolicy;#endif
@@ -1089,9 +1089,9 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,* Restore the saved policy when doing light-weight init and fall back * to the full init if that fails. */ - policy = frozen ?cpufreq_policy_restore (cpu) :NULL ; + policy = recover_policy ?cpufreq_policy_restore (cpu) :NULL ;if (!policy) { - frozen = false; + recover_policy = false; policy =cpufreq_policy_alloc ();if (!policy) goto nomem_out;
@@ -1103,7 +1103,7 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,* the creation of a brand new one. So we need to perform this update * by invoking update_policy_cpu(). */ -if (frozen && cpu != policy->cpu) +if (recover_policy && cpu != policy->cpu)update_policy_cpu (policy, cpu);else policy->cpu = cpu;
@@ -1131,7 +1131,7 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,*/ cpumask_and (policy->cpus, policy->cpus, cpu_online_mask); -if (!frozen) { +if (!recover_policy) { policy->user_policy.min = policy->min; policy->user_policy.max = policy->max; }
@@ -1193,7 +1193,7 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,blocking_notifier_call_chain (&cpufreq_policy_notifier_list,CPUFREQ_START , policy); -if (!frozen) { +if (!recover_policy) { ret =cpufreq_add_dev_interface (policy, dev);if (ret) goto err_out_unregister;
@@ -1207,7 +1207,7 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,cpufreq_init_policy (policy); -if (!frozen) { +if (!recover_policy) { policy->user_policy.policy = policy->policy; policy->user_policy.governor = policy->governor; }
@@ -1230,7 +1230,7 @@ err_get_freq:if (cpufreq_driver->exit) cpufreq_driver->exit (policy); err_set_policy_cpu: -if (frozen) { +if (recover_policy) {/* Do not leave stale fallback data behind. */ per_cpu (cpufreq_cpu_data_fallback, cpu) =NULL ;cpufreq_policy_put_kobj (policy);
@@ -1254,7 +1254,7 @@ nomem_out:*/ static int cpufreq_add_dev (struct device *dev,struct subsys_interface *sif) { -return __cpufreq_add_dev (dev, sif, false); +return __cpufreq_add_dev (dev, sif); } static int cpufreq_nominate_new_policy_cpu(struct cpufreq_policy *policy,
@@ -1285,8 +1285,7 @@ static int cpufreq_nominate_new_policy_cpu(struct cpufreq_policy *policy, }static int __cpufreq_remove_dev_prepare (struct device *dev, -struct subsys_interface *sif, -bool frozen) +struct subsys_interface *sif) {unsigned int cpu = dev->id, cpus;int new_cpu, ret;
@@ -1300,7 +1299,7 @@ static int __cpufreq_remove_dev_prepare(struct device *dev, policy =per_cpu (cpufreq_cpu_data, cpu);/* Save the policy somewhere when doing a light-weight tear-down */ -if (frozen) +if (cpufreq_suspended)per_cpu (cpufreq_cpu_data_fallback, cpu) = policy;write_unlock_irqrestore (&cpufreq_driver_lock, flags);
@@ -1333,7 +1332,7 @@ static int __cpufreq_remove_dev_prepare(struct device *dev,if (new_cpu >=0 ) {update_policy_cpu (policy, new_cpu); -if (!frozen) { +if (!cpufreq_suspended) {pr_debug ("%s: policy Kobject moved to cpu: %d from: %d\n" , __func__, new_cpu, cpu); }
@@ -1344,8 +1343,7 @@ static int __cpufreq_remove_dev_prepare(struct device *dev, }static int __cpufreq_remove_dev_finish (struct device *dev, -struct subsys_interface *sif, -bool frozen) +struct subsys_interface *sif) {unsigned int cpu = dev->id, cpus;int ret;
@@ -1380,7 +1378,7 @@ static int __cpufreq_remove_dev_finish(struct device *dev, } } -if (!frozen) +if (!cpufreq_suspended)cpufreq_policy_put_kobj (policy);/*
@@ -1396,7 +1394,7 @@ static int __cpufreq_remove_dev_finish(struct device *dev,list_del (&policy->policy_list);write_unlock_irqrestore (&cpufreq_driver_lock, flags); -if (!frozen) +if (!cpufreq_suspended)cpufreq_policy_free (policy); }else {if (has_target ()) {
@@ -1426,10 +1424,10 @@ static int cpufreq_remove_dev(struct device *dev, struct subsys_interface *sif)if (cpu_is_offline (cpu))return 0 ; - ret =__cpufreq_remove_dev_prepare (dev, sif, false); + ret =__cpufreq_remove_dev_prepare (dev, sif);if (!ret) - ret =__cpufreq_remove_dev_finish (dev, sif, false); + ret =__cpufreq_remove_dev_finish (dev, sif);return ret; }
@@ -2187,29 +2185,24 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb, {unsigned int cpu = (unsigned long )hcpu;struct device *dev; -bool frozen = false; dev =get_cpu_device (cpu);if (dev) { - -if (action &CPU_TASKS_FROZEN ) - frozen = true; -switch (action & ~CPU_TASKS_FROZEN ) {case CPU_ONLINE : -__cpufreq_add_dev (dev,NULL , frozen); +__cpufreq_add_dev (dev,NULL );break ;case CPU_DOWN_PREPARE : -__cpufreq_remove_dev_prepare (dev,NULL , frozen); +__cpufreq_remove_dev_prepare (dev,NULL );break ;case CPU_POST_DEAD : -__cpufreq_remove_dev_finish (dev,NULL , frozen); +__cpufreq_remove_dev_finish (dev,NULL );break ;case CPU_DOWN_FAILED : -__cpufreq_add_dev (dev,NULL , frozen); +__cpufreq_add_dev (dev,NULL );break ; } }
Signature · 1 line
1.7.12.rc2.18.g61b472e