2016-12-16 21:55:07

by Alexey Khoroshilov

[permalink] [raw]
Subject: i2c: xiic: Strange clk_prepare_enable() in xiic_i2c_remove()

Dear Shubhrajyoti,

Looking at 36ecbcab84d0 ("i2c: xiic: Implement power management")
it is not clear why clk_prepare_enable(i2c->clk) is required in
xiic_i2c_remove()?

It is enabled in xiic_i2c_probe() and disabled/enabled in
cdns_i2c_runtime_suspend()/cdns_i2c_runtime_resume().

Could you please clarify the point.

--
Alexey Khoroshilov
Linux Verification Center, ISPRAS
web: http://linuxtesting.org


2016-12-17 07:06:22

by Shubhrajyoti Datta

[permalink] [raw]
Subject: Re: i2c: xiic: Strange clk_prepare_enable() in xiic_i2c_remove()

On Sat, Dec 17, 2016 at 3:24 AM, Alexey Khoroshilov
<[email protected]> wrote:
> Dear Shubhrajyoti,
>
> Looking at 36ecbcab84d0 ("i2c: xiic: Implement power management")
> it is not clear why clk_prepare_enable(i2c->clk) is required in
> xiic_i2c_remove()?

834 ret = clk_prepare_enable(i2c->clk);
835 if (ret) {
836 dev_err(&pdev->dev, "Unable to enable clock.\n");
837 return ret;
838 }
839 xiic_deinit(i2c);
840 clk_disable_unprepare(i2c->clk);

so it is enabled and disabled after xiic_deinit.

>
> It is enabled in xiic_i2c_probe() and disabled/enabled in
> cdns_i2c_runtime_suspend()/cdns_i2c_runtime_resume().
>
> Could you please clarify the point.
>
> --
> Alexey Khoroshilov
> Linux Verification Center, ISPRAS
> web: http://linuxtesting.org
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html