Merge tag 'driver-core-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / drivers / clk / clk-wm831x.c
index 1b4e2281323dbe397c454a2406e9fca4b89be313..16ed06808554aa5aa92651342e3b2e88c32784a6 100644 (file)
@@ -370,43 +370,27 @@ static int wm831x_clk_probe(struct platform_device *pdev)
        clkdata->xtal_ena = ret & WM831X_XTAL_ENA;
 
        clkdata->xtal_hw.init = &wm831x_xtal_init;
-       clkdata->xtal = clk_register(&pdev->dev, &clkdata->xtal_hw);
-       if (!clkdata->xtal)
-               return -EINVAL;
+       clkdata->xtal = devm_clk_register(&pdev->dev, &clkdata->xtal_hw);
+       if (IS_ERR(clkdata->xtal))
+               return PTR_ERR(clkdata->xtal);
 
        clkdata->fll_hw.init = &wm831x_fll_init;
-       clkdata->fll = clk_register(&pdev->dev, &clkdata->fll_hw);
-       if (!clkdata->fll) {
-               ret = -EINVAL;
-               goto err_xtal;
-       }
+       clkdata->fll = devm_clk_register(&pdev->dev, &clkdata->fll_hw);
+       if (IS_ERR(clkdata->fll))
+               return PTR_ERR(clkdata->fll);
 
        clkdata->clkout_hw.init = &wm831x_clkout_init;
-       clkdata->clkout = clk_register(&pdev->dev, &clkdata->clkout_hw);
-       if (!clkdata->clkout) {
-               ret = -EINVAL;
-               goto err_fll;
-       }
+       clkdata->clkout = devm_clk_register(&pdev->dev, &clkdata->clkout_hw);
+       if (IS_ERR(clkdata->clkout))
+               return PTR_ERR(clkdata->clkout);
 
        dev_set_drvdata(&pdev->dev, clkdata);
 
        return 0;
-
-err_fll:
-       clk_unregister(clkdata->fll);
-err_xtal:
-       clk_unregister(clkdata->xtal);
-       return ret;
 }
 
 static int wm831x_clk_remove(struct platform_device *pdev)
 {
-       struct wm831x_clk *clkdata = dev_get_drvdata(&pdev->dev);
-
-       clk_unregister(clkdata->clkout);
-       clk_unregister(clkdata->fll);
-       clk_unregister(clkdata->xtal);
-
        return 0;
 }