|
@@ -141,8 +141,10 @@ static int ls1x_cpufreq_probe(struct platform_device *pdev)
|
|
|
struct clk *clk;
|
|
|
int ret;
|
|
|
|
|
|
- if (!pdata || !pdata->clk_name || !pdata->osc_clk_name)
|
|
|
+ if (!pdata || !pdata->clk_name || !pdata->osc_clk_name) {
|
|
|
+ dev_err(&pdev->dev, "platform data missing\n");
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
|
|
|
cpufreq =
|
|
|
devm_kzalloc(&pdev->dev, sizeof(struct ls1x_cpufreq), GFP_KERNEL);
|
|
@@ -155,8 +157,7 @@ static int ls1x_cpufreq_probe(struct platform_device *pdev)
|
|
|
if (IS_ERR(clk)) {
|
|
|
dev_err(&pdev->dev, "unable to get %s clock\n",
|
|
|
pdata->clk_name);
|
|
|
- ret = PTR_ERR(clk);
|
|
|
- goto out;
|
|
|
+ return PTR_ERR(clk);
|
|
|
}
|
|
|
cpufreq->clk = clk;
|
|
|
|
|
@@ -164,8 +165,7 @@ static int ls1x_cpufreq_probe(struct platform_device *pdev)
|
|
|
if (IS_ERR(clk)) {
|
|
|
dev_err(&pdev->dev, "unable to get parent of %s clock\n",
|
|
|
__clk_get_name(cpufreq->clk));
|
|
|
- ret = PTR_ERR(clk);
|
|
|
- goto out;
|
|
|
+ return PTR_ERR(clk);
|
|
|
}
|
|
|
cpufreq->mux_clk = clk;
|
|
|
|
|
@@ -173,8 +173,7 @@ static int ls1x_cpufreq_probe(struct platform_device *pdev)
|
|
|
if (IS_ERR(clk)) {
|
|
|
dev_err(&pdev->dev, "unable to get parent of %s clock\n",
|
|
|
__clk_get_name(cpufreq->mux_clk));
|
|
|
- ret = PTR_ERR(clk);
|
|
|
- goto out;
|
|
|
+ return PTR_ERR(clk);
|
|
|
}
|
|
|
cpufreq->pll_clk = clk;
|
|
|
|
|
@@ -182,8 +181,7 @@ static int ls1x_cpufreq_probe(struct platform_device *pdev)
|
|
|
if (IS_ERR(clk)) {
|
|
|
dev_err(&pdev->dev, "unable to get %s clock\n",
|
|
|
pdata->osc_clk_name);
|
|
|
- ret = PTR_ERR(clk);
|
|
|
- goto out;
|
|
|
+ return PTR_ERR(clk);
|
|
|
}
|
|
|
cpufreq->osc_clk = clk;
|
|
|
|
|
@@ -194,19 +192,18 @@ static int ls1x_cpufreq_probe(struct platform_device *pdev)
|
|
|
if (ret) {
|
|
|
dev_err(&pdev->dev,
|
|
|
"failed to register CPUFreq driver: %d\n", ret);
|
|
|
- goto out;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
ret = cpufreq_register_notifier(&ls1x_cpufreq_notifier_block,
|
|
|
CPUFREQ_TRANSITION_NOTIFIER);
|
|
|
|
|
|
- if (!ret)
|
|
|
- goto out;
|
|
|
-
|
|
|
- dev_err(&pdev->dev, "failed to register cpufreq notifier: %d\n", ret);
|
|
|
+ if (ret) {
|
|
|
+ dev_err(&pdev->dev,
|
|
|
+ "failed to register CPUFreq notifier: %d\n",ret);
|
|
|
+ cpufreq_unregister_driver(&ls1x_cpufreq_driver);
|
|
|
+ }
|
|
|
|
|
|
- cpufreq_unregister_driver(&ls1x_cpufreq_driver);
|
|
|
-out:
|
|
|
return ret;
|
|
|
}
|
|
|
|