diff --git a/drivers/cpufreq/loongson1-cpufreq.c b/drivers/cpufreq/loongson1-cpufreq.c index f0d0156109f5..be89416e2358 100644 --- a/drivers/cpufreq/loongson1-cpufreq.c +++ b/drivers/cpufreq/loongson1-cpufreq.c @@ -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; + if (ret) { + dev_err(&pdev->dev, + "failed to register CPUFreq notifier: %d\n",ret); + cpufreq_unregister_driver(&ls1x_cpufreq_driver); + } - dev_err(&pdev->dev, "failed to register cpufreq notifier: %d\n", ret); - - cpufreq_unregister_driver(&ls1x_cpufreq_driver); -out: return ret; }