clk: wm831x: Use devm_clk_register() to simplify code

Move this driver to use devm_clk_register() to simplify some
error paths and reduce lines of code.

Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
This commit is contained in:
Stephen Boyd 2012-09-24 13:38:05 -07:00 committed by Mike Turquette
parent 46c8773a58
commit 9be9d482bc
1 changed files with 7 additions and 23 deletions

View File

@ -370,43 +370,27 @@ static __devinit int wm831x_clk_probe(struct platform_device *pdev)
clkdata->xtal_ena = ret & WM831X_XTAL_ENA; clkdata->xtal_ena = ret & WM831X_XTAL_ENA;
clkdata->xtal_hw.init = &wm831x_xtal_init; clkdata->xtal_hw.init = &wm831x_xtal_init;
clkdata->xtal = clk_register(&pdev->dev, &clkdata->xtal_hw); clkdata->xtal = devm_clk_register(&pdev->dev, &clkdata->xtal_hw);
if (IS_ERR(clkdata->xtal)) if (IS_ERR(clkdata->xtal))
return PTR_ERR(clkdata->xtal); return PTR_ERR(clkdata->xtal);
clkdata->fll_hw.init = &wm831x_fll_init; clkdata->fll_hw.init = &wm831x_fll_init;
clkdata->fll = clk_register(&pdev->dev, &clkdata->fll_hw); clkdata->fll = devm_clk_register(&pdev->dev, &clkdata->fll_hw);
if (IS_ERR(clkdata->fll)) { if (IS_ERR(clkdata->fll))
ret = PTR_ERR(clkdata->fll); return PTR_ERR(clkdata->fll);
goto err_xtal;
}
clkdata->clkout_hw.init = &wm831x_clkout_init; clkdata->clkout_hw.init = &wm831x_clkout_init;
clkdata->clkout = clk_register(&pdev->dev, &clkdata->clkout_hw); clkdata->clkout = devm_clk_register(&pdev->dev, &clkdata->clkout_hw);
if (IS_ERR(clkdata->clkout)) { if (IS_ERR(clkdata->clkout))
ret = PTR_ERR(clkdata->clkout); return PTR_ERR(clkdata->clkout);
goto err_fll;
}
dev_set_drvdata(&pdev->dev, clkdata); dev_set_drvdata(&pdev->dev, clkdata);
return 0; return 0;
err_fll:
clk_unregister(clkdata->fll);
err_xtal:
clk_unregister(clkdata->xtal);
return ret;
} }
static int __devexit wm831x_clk_remove(struct platform_device *pdev) static int __devexit 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; return 0;
} }