[PATCH 6/7] rtc: sa1100: enable clk support
Arnd Bergmann
arnd at arndb.de
Wed Feb 22 07:29:17 EST 2012
On Tuesday 21 February 2012, Haojian Zhuang wrote:
> @@ -306,6 +308,13 @@ static int sa1100_rtc_probe(struct platform_device *pdev)
> if (!info)
> return -ENOMEM;
>
> + info->clk = clk_get(&pdev->dev, NULL);
> + if (IS_ERR(info->clk)) {
> + dev_err(&pdev->dev, "failed to find rtc clock source\n");
> + ret = PTR_ERR(info->clk);
> + goto err_clk;
> + }
> + clk_prepare_enable(info->clk);
> info->iobase = res->start;
> info->iosize = resource_size(res);
> info->irq_1hz = irq_1hz;
> @@ -379,6 +388,9 @@ err_dev:
> iounmap(info->reg_base);
> err_map:
> platform_set_drvdata(pdev, NULL);
> + clk_disable_unprepare(info->clk);
> + clk_put(info->clk);
> +err_clk:
> kfree(info);
> return ret;
I wonder whether it would be easier to just make the clk handling
conditional here, like
info->clk = clk_get(&pdev->dev, NULL);
if (PTR_ERR(info->clk) == -ENOENT)
info->clk = NULL;
if (IS_ERR(info->clk)) {
ret = PTR_ERR(info->clk);
goto err_clk;
}
if (info->clk)
clk_prepare_enable(info->clk);
...
if (info->clk) {
clk_disable_unprepare(info->clk);
clk_put(info->clk);
}
With this, you would no longer need to add dummy clocks in platforms
that really have no clock handling.
Arnd
More information about the linux-arm-kernel
mailing list