Re: [PATCH v3 2/4] crypto: mxs-dcp - Add support for dcp clk

From: Leonard Crestez
Date: Tue Oct 16 2018 - 13:23:19 EST


On Tue, 2018-10-16 at 13:03 -0300, Fabio Estevam wrote:
> > + /* DCP clock is optional, only used on some SOCs */
> > + sdcp->dcp_clk = devm_clk_get(dev, "dcp");
> > + if (IS_ERR(sdcp->dcp_clk)) {
> > + if (sdcp->dcp_clk != ERR_PTR(-ENOENT))
> > + return PTR_ERR(sdcp->dcp_clk);
> > + sdcp->dcp_clk = NULL;
>
> This dcp_clk assignment to NULL does not seem to be necessary.

The clk API ignores all calls if clk == NULL (which is very nice) but
not if IS_ERR(clk). Setting dcp_clk to NULL avoids sprinkling other
checks.

> > + ret = clk_prepare_enable(sdcp->dcp_clk);
> > + if (ret)
> > + return ret;
> >
> > ret = devm_request_irq(dev, dcp_vmi_irq, mxs_dcp_irq, 0,
> > "dcp-vmi-irq", sdcp);
> > if (ret) {
> > dev_err(dev, "Failed to claim DCP VMI IRQ!\n");
>
> In case of subsequent errors you should call
> clk_disable_unprepare(sdcp->dcp_clk).

Yes, will resend. Maybe some day clk consumer will automatically undo
pending prepare/enables on release?