Commit 9be9d482 authored by Stephen Boyd's avatar Stephen Boyd Committed by Mike Turquette
Browse files

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: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
parent 46c8773a
Loading
Loading
Loading
Loading
+7 −23
Original line number Diff line number Diff line
@@ -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;
}