On Fri, Jun 03, 2016 at 05:55:17PM +0800, Lin Huang wrote:
[...]
> +     ret = clk_prepare_enable(data->clk);
> +     if (ret) {
> +             dev_err(&pdev->dev, "failed to enable clk: %d\n", ret);
> +             clk_disable_unprepare(data->clk);
> +             return ret;
> +     }

This is going to give you a large WARN. clk_prepare_enable() already
leaves the clock in a proper state when it fails (i.e. it calls
clk_unprepare() if the clk_enable() part failed), so calling
clk_disable_unprepare() upon failure is going to unbalance the
reference counts.

Thierry

Attachment: signature.asc
Description: PGP signature

Reply via email to