From: "Michael Walle" <mwalle@kernel.org>
To: "Nishanth Menon" <nm@ti.com>
Cc: "Frank Binns" <frank.binns@imgtec.com>,
"Matt Coster" <matt.coster@imgtec.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Tero Kristo" <kristo@kernel.org>, "Andrew Davis" <afd@ti.com>,
"Santosh Shilimkar" <ssantosh@kernel.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Kevin Hilman" <khilman@baylibre.com>,
"Randolph Sapp" <rs@ti.com>, <linux-clk@vger.kernel.org>,
<dri-devel@lists.freedesktop.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 2/4] clk: keystone: don't cache clock rate
Date: Fri, 02 Jan 2026 08:55:13 +0100 [thread overview]
Message-ID: <DFDXXBFG13CK.385K2HM9FOWS6@kernel.org> (raw)
In-Reply-To: <20251230201233.n36d5fiensqyb6fc@splice>
[-- Attachment #1: Type: text/plain, Size: 2932 bytes --]
On Tue Dec 30, 2025 at 9:12 PM CET, Nishanth Menon wrote:
> On 13:47-20251223, Michael Walle wrote:
>> The TISCI firmware will return 0 if the clock or consumer is not
>> enabled although there is a stored value in the firmware. IOW a call to
>> set rate will work but at get rate will always return 0 if the clock is
>> disabled.
>> The clk framework will try to cache the clock rate when it's requested
>> by a consumer. If the clock or consumer is not enabled at that point,
>> the cached value is 0, which is wrong. Thus, disable the cache
>> altogether.
>>
>> Signed-off-by: Michael Walle <mwalle@kernel.org>
>> Reviewed-by: Kevin Hilman <khilman@baylibre.com>
>> Reviewed-by: Randolph Sapp <rs@ti.com>
>> ---
>> drivers/clk/keystone/sci-clk.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/clk/keystone/sci-clk.c b/drivers/clk/keystone/sci-clk.c
>> index 9d5071223f4c..0a1565fdbb3b 100644
>> --- a/drivers/clk/keystone/sci-clk.c
>> +++ b/drivers/clk/keystone/sci-clk.c
>> @@ -333,6 +333,14 @@ static int _sci_clk_build(struct sci_clk_provider *provider,
>>
>> init.ops = &sci_clk_ops;
>> init.num_parents = sci_clk->num_parents;
>> +
>> + /*
>> + * A clock rate query to the SCI firmware will return 0 if either the
>> + * clock itself is disabled or the attached device/consumer is disabled.
>> + * This makes it inherently unsuitable for the caching of the clk
>> + * framework.
>> + */
>> + init.flags = CLK_GET_RATE_NOCACHE;
>> sci_clk->hw.init = &init;
>>
>> ret = devm_clk_hw_register(provider->dev, &sci_clk->hw);
>> --
>> 2.47.3
>>
>
> Reviewed-by: Nishanth Menon <nm@ti.com>
>
> I wish there was a better scheme, but inherently, just like SCMI and
> other systems where power management co-processor controls clocks, there
> is no real feasible caching scheme I can think of. I wonder if Stephen
> or others have a thought on this?
>
> That said, I wonder if we need fixes tag to this? I am sure there are
> other clocks susceptible to this as well. I wonder if
> commit 3c13933c6033 ("clk: keystone: sci-clk: add support for
> dynamically probing clocks") is the appropriate tag?
From my previous versions of this patch:
> Regarding a Fixes: tag. I didn't include one because it might have a
> slight performance impact because the firmware has to be queried
> every time now and it doesn't have been a problem for now. OTOH I've
> enabled tracing during boot and there were just a handful
> clock_{get/set}_rate() calls.
I'm still undecided if this needs a Fixes tag or not. Strictly
speaking it would need one. Although, I'm not sure it's the one
you mentioned, because the culprit is the "we return 0 if the clock
or it's consumer is disabled", which then caches the wrong value.
So it is probably the very first commit b745c0794e2f ("clk:
keystone: Add sci-clk driver support").
-michael
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 297 bytes --]
next prev parent reply other threads:[~2026-01-02 7:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-23 12:47 [PATCH v2 0/4] drm/imagination: add AM62P/AM67A/J722S support Michael Walle
2025-12-23 12:47 ` [PATCH v2 1/4] dt-bindings: gpu: img: Add AM62P SoC specific compatible Michael Walle
2026-01-09 12:10 ` Nishanth Menon
2026-01-09 12:55 ` Matt Coster
2025-12-23 12:47 ` [PATCH v2 2/4] clk: keystone: don't cache clock rate Michael Walle
2025-12-30 20:12 ` Nishanth Menon
2026-01-02 7:55 ` Michael Walle [this message]
2026-01-09 12:07 ` Nishanth Menon
2025-12-23 12:47 ` [PATCH v2 3/4] arm64: dts: ti: add GPU node Michael Walle
2025-12-23 12:47 ` [PATCH v2 4/4] arm64: dts: ti: sa67: set the GPU clock to 800MHz Michael Walle
2026-01-09 13:48 ` (subset) [PATCH v2 0/4] drm/imagination: add AM62P/AM67A/J722S support Matt Coster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DFDXXBFG13CK.385K2HM9FOWS6@kernel.org \
--to=mwalle@kernel.org \
--cc=afd@ti.com \
--cc=airlied@gmail.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=frank.binns@imgtec.com \
--cc=khilman@baylibre.com \
--cc=kristo@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matt.coster@imgtec.com \
--cc=mripard@kernel.org \
--cc=mturquette@baylibre.com \
--cc=nm@ti.com \
--cc=robh@kernel.org \
--cc=rs@ti.com \
--cc=sboyd@kernel.org \
--cc=simona@ffwll.ch \
--cc=ssantosh@kernel.org \
--cc=tzimmermann@suse.de \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.