2023-10-20 07:08:07

by Arun KS

[permalink] [raw]
Subject: Question on pre running clocks

Hello,

Lets say there is a clock which is enabled by bootloaders and is pre
running as linux boots.
Is it mandatory for the client drivers to call clk_prepare_enable() on
them to initialise the enable_count to 1?

Or is there a way we can specify to the kernel that this clock is
already enabled by bootloader and initialise the enable_count for this
clock to 1.

Because otherwise, clk_disable() prints a WARN() if a client driver
uses clock handle where clk_prepare_enable() is not called.

I grep through the code, but could find any details. Appreciate any pointers.

Regards,
Arun


2023-10-20 07:09:22

by Arun KS

[permalink] [raw]
Subject: Re: Question on pre running clocks

+ linux-clk

On Fri, Oct 20, 2023 at 12:37 PM Arun KS <[email protected]> wrote:
>
> Hello,
>
> Lets say there is a clock which is enabled by bootloaders and is pre
> running as linux boots.
> Is it mandatory for the client drivers to call clk_prepare_enable() on
> them to initialise the enable_count to 1?
>
> Or is there a way we can specify to the kernel that this clock is
> already enabled by bootloader and initialise the enable_count for this
> clock to 1.
>
> Because otherwise, clk_disable() prints a WARN() if a client driver
> uses clock handle where clk_prepare_enable() is not called.
>
> I grep through the code, but could find any details. Appreciate any pointers.
>
> Regards,
> Arun

2023-10-24 02:42:41

by Stephen Boyd

[permalink] [raw]
Subject: Re: Question on pre running clocks

Quoting Arun KS (2023-10-20 00:09:05)
> + linux-clk
>
> On Fri, Oct 20, 2023 at 12:37 PM Arun KS <[email protected]> wrote:
> >
> > Hello,
> >
> > Lets say there is a clock which is enabled by bootloaders and is pre
> > running as linux boots.
> > Is it mandatory for the client drivers to call clk_prepare_enable() on
> > them to initialise the enable_count to 1?

Yes.

> >
> > Or is there a way we can specify to the kernel that this clock is
> > already enabled by bootloader and initialise the enable_count for this
> > clock to 1.

No there isn't.

> >
> > Because otherwise, clk_disable() prints a WARN() if a client driver
> > uses clock handle where clk_prepare_enable() is not called.
> >
> > I grep through the code, but could find any details. Appreciate any pointers.
> >
> > Regards,
> > Arun