diff options
-rw-r--r-- | drivers/cpufreq/mvebu-cpufreq.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/cpufreq/mvebu-cpufreq.c b/drivers/cpufreq/mvebu-cpufreq.c index 31513bd42705..6d33a639f902 100644 --- a/drivers/cpufreq/mvebu-cpufreq.c +++ b/drivers/cpufreq/mvebu-cpufreq.c | |||
@@ -84,9 +84,10 @@ static int __init armada_xp_pmsu_cpufreq_init(void) | |||
84 | 84 | ||
85 | ret = dev_pm_opp_add(cpu_dev, clk_get_rate(clk) / 2, 0); | 85 | ret = dev_pm_opp_add(cpu_dev, clk_get_rate(clk) / 2, 0); |
86 | if (ret) { | 86 | if (ret) { |
87 | dev_pm_opp_remove(cpu_dev, clk_get_rate(clk)); | ||
87 | clk_put(clk); | 88 | clk_put(clk); |
88 | dev_err(cpu_dev, "Failed to register OPPs\n"); | 89 | dev_err(cpu_dev, "Failed to register OPPs\n"); |
89 | goto opp_register_failed; | 90 | return ret; |
90 | } | 91 | } |
91 | 92 | ||
92 | ret = dev_pm_opp_set_sharing_cpus(cpu_dev, | 93 | ret = dev_pm_opp_set_sharing_cpus(cpu_dev, |
@@ -99,11 +100,5 @@ static int __init armada_xp_pmsu_cpufreq_init(void) | |||
99 | 100 | ||
100 | platform_device_register_simple("cpufreq-dt", -1, NULL, 0); | 101 | platform_device_register_simple("cpufreq-dt", -1, NULL, 0); |
101 | return 0; | 102 | return 0; |
102 | |||
103 | opp_register_failed: | ||
104 | /* As registering has failed remove all the opp for all cpus */ | ||
105 | dev_pm_opp_cpumask_remove_table(cpu_possible_mask); | ||
106 | |||
107 | return ret; | ||
108 | } | 103 | } |
109 | device_initcall(armada_xp_pmsu_cpufreq_init); | 104 | device_initcall(armada_xp_pmsu_cpufreq_init); |