Re: [PATCH] clk: add new Kconfig to control default behavior of disabling unused clocks
From: Abel Vesa
Date: Tue Mar 17 2026 - 09:25:26 EST
On 26-03-17 14:18:56, Maxime Ripard wrote:
> On Tue, Mar 17, 2026 at 03:03:01PM +0200, Abel Vesa wrote:
> > On 26-03-17 08:26:27, Brian Masney wrote:
> > > Hi Hans,
> > >
> > > On Tue, Mar 17, 2026 at 01:16:33PM +0100, Hans de Goede wrote:
> > > > On 17-Mar-26 13:14, Abel Vesa wrote:
> > > > > On 26-03-17 08:30:24, Maxime Ripard wrote:
> > > > >> On Mon, Mar 16, 2026 at 06:33:45PM -0400, Brian Masney wrote:
> > > > >>> At the 2023 Linux Plumbers Conference in Richmond VA, there was a
> > > > >>> discussion about how large number of systems need to boot with
> > > > >>> clk_ignore_unused. Per the discussions at the conference, the existing
> > > > >>> behavior in the clk core is broken, and there is a desire to completely
> > > > >>> remove this functionality.
> > > > >>
> > > > >> Broken how?
> > > > >>
> > > > >> clk_ignore_unused is to a point where it's seriously cargo-culted and
> > > > >> documented as a silver bullet, when in reality it's just a debug tool
> > > > >> for broken drivers, and the driver must be fixed.
> > > > >>
> > > > >> But nobody is actually fixing it.
> > > > >>
> > > > >> See
> > > > >> https://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems#How_To_Test
> > > > >> for example. The affected clock could be marked as CLK_IS_CRITICAL, and
> > > > >> fedora wouldn't have to package anything, change anything, etc. But no,
> > > > >> the problem is clk_ignore_unused.
> > > > >
> > > > > Nope. Don't ever mark clocks as critical unless system crashes without
> > > > > them.
> > > > >
> > > > > Here is an example or why clocks cannot be marked as critical but need
> > > > > to be kept by the clk_ignore_unused: display driver probes later.
> > > > > If you mark it as critical you just made the clock stay enabled even
> > > > > when display is off.
> > > > >
> > > > > And this is just one example.
> > > >
> > > > Interesting, so maybe we need a new way flag to mark clocks as not to
> > > > be turned off when turning unused clocks off, which does not block
> > > > them getting disabled normally later ?
> > > >
> > > > (I was under the mistaken impression this is what CLK_IS_CRITICAL did)
> > >
> > > There's a separate flag CLK_IGNORE_UNUSED that can be used instead.
> >
> > But figuring out which clock needs to stay enabled until whatever
> > consumer module is provided and probes is a mess.
>
> And yet, plenty of platforms are doing it just fine.
>
> > The solution is drop the clk_ignore_unused and rely on the sync_state of
> > each provider to do the job. Sync state isn't reached until all
> > providers probes, therefore the clocks stay on until then.
>
> The problem here isn't that providers have to be there, you said it
> yourself, it's about when consumers will be loaded and get their clock.
> Either way, sync_states don't seem to move forward much when it comes to
> clocks, so it might be something that we converge to eventually, but it
> won't help this patch today.
Sorry, I meant "until all consumers probe". My bad.