|
@@ -370,43 +370,27 @@ static __devinit 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);
|
|
|
+ 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 (IS_ERR(clkdata->fll)) {
|
|
|
- ret = PTR_ERR(clkdata->fll);
|
|
|
- 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 (IS_ERR(clkdata->clkout)) {
|
|
|
- ret = PTR_ERR(clkdata->clkout);
|
|
|
- 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 __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;
|
|
|
}
|
|
|
|