diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-06-02 18:01:45 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-06-02 18:01:45 -0400 |
commit | bb5710e72c217e5bbdf0969a2fd84f5f5ad7fc2b (patch) | |
tree | 4a2d92c0352e1c8e86a8b538e9495b7bdfda9a5d | |
parent | 5ed02dbb497422bf225783f46e6eadd237d23d6b (diff) | |
parent | 7575f8257279f9dd24b3fc950aa2c7e98564a103 (diff) |
Merge branch 'pm-cpufreq'
* pm-cpufreq:
cpufreq: kirkwood-cpufreq:- Handle return value of clk_prepare_enable()
cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 1 | ||||
-rw-r--r-- | drivers/cpufreq/kirkwood-cpufreq.c | 19 |
2 files changed, 17 insertions, 3 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 0e3f6496524d..26b643d57847 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -2468,6 +2468,7 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data) | |||
2468 | if (!(cpufreq_driver->flags & CPUFREQ_STICKY) && | 2468 | if (!(cpufreq_driver->flags & CPUFREQ_STICKY) && |
2469 | list_empty(&cpufreq_policy_list)) { | 2469 | list_empty(&cpufreq_policy_list)) { |
2470 | /* if all ->init() calls failed, unregister */ | 2470 | /* if all ->init() calls failed, unregister */ |
2471 | ret = -ENODEV; | ||
2471 | pr_debug("%s: No CPU initialized for driver %s\n", __func__, | 2472 | pr_debug("%s: No CPU initialized for driver %s\n", __func__, |
2472 | driver_data->name); | 2473 | driver_data->name); |
2473 | goto err_if_unreg; | 2474 | goto err_if_unreg; |
diff --git a/drivers/cpufreq/kirkwood-cpufreq.c b/drivers/cpufreq/kirkwood-cpufreq.c index 1b9bcd76c60e..c2dd43f3f5d8 100644 --- a/drivers/cpufreq/kirkwood-cpufreq.c +++ b/drivers/cpufreq/kirkwood-cpufreq.c | |||
@@ -127,7 +127,12 @@ static int kirkwood_cpufreq_probe(struct platform_device *pdev) | |||
127 | return PTR_ERR(priv.cpu_clk); | 127 | return PTR_ERR(priv.cpu_clk); |
128 | } | 128 | } |
129 | 129 | ||
130 | clk_prepare_enable(priv.cpu_clk); | 130 | err = clk_prepare_enable(priv.cpu_clk); |
131 | if (err) { | ||
132 | dev_err(priv.dev, "Unable to prepare cpuclk\n"); | ||
133 | return err; | ||
134 | } | ||
135 | |||
131 | kirkwood_freq_table[0].frequency = clk_get_rate(priv.cpu_clk) / 1000; | 136 | kirkwood_freq_table[0].frequency = clk_get_rate(priv.cpu_clk) / 1000; |
132 | 137 | ||
133 | priv.ddr_clk = of_clk_get_by_name(np, "ddrclk"); | 138 | priv.ddr_clk = of_clk_get_by_name(np, "ddrclk"); |
@@ -137,7 +142,11 @@ static int kirkwood_cpufreq_probe(struct platform_device *pdev) | |||
137 | goto out_cpu; | 142 | goto out_cpu; |
138 | } | 143 | } |
139 | 144 | ||
140 | clk_prepare_enable(priv.ddr_clk); | 145 | err = clk_prepare_enable(priv.ddr_clk); |
146 | if (err) { | ||
147 | dev_err(priv.dev, "Unable to prepare ddrclk\n"); | ||
148 | goto out_cpu; | ||
149 | } | ||
141 | kirkwood_freq_table[1].frequency = clk_get_rate(priv.ddr_clk) / 1000; | 150 | kirkwood_freq_table[1].frequency = clk_get_rate(priv.ddr_clk) / 1000; |
142 | 151 | ||
143 | priv.powersave_clk = of_clk_get_by_name(np, "powersave"); | 152 | priv.powersave_clk = of_clk_get_by_name(np, "powersave"); |
@@ -146,7 +155,11 @@ static int kirkwood_cpufreq_probe(struct platform_device *pdev) | |||
146 | err = PTR_ERR(priv.powersave_clk); | 155 | err = PTR_ERR(priv.powersave_clk); |
147 | goto out_ddr; | 156 | goto out_ddr; |
148 | } | 157 | } |
149 | clk_prepare_enable(priv.powersave_clk); | 158 | err = clk_prepare_enable(priv.powersave_clk); |
159 | if (err) { | ||
160 | dev_err(priv.dev, "Unable to prepare powersave clk\n"); | ||
161 | goto out_ddr; | ||
162 | } | ||
150 | 163 | ||
151 | of_node_put(np); | 164 | of_node_put(np); |
152 | np = NULL; | 165 | np = NULL; |