[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <22ff786d1e034169be21ef7dc32c4a3a@foss.st.com>
Date: Mon, 9 Dec 2024 13:48:48 +0000
From: Etienne CARRIERE - foss <etienne.carriere@...s.st.com>
To: Sudeep Holla <sudeep.holla@....com>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Cristian
Marussi" <cristian.marussi@....com>,
Michael Turquette
<mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>,
"arm-scmi@...r.kernel.org" <arm-scmi@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-clk@...r.kernel.org"
<linux-clk@...r.kernel.org>
Subject: Re: [PATCH v2 1/2] firmware: arm_scmi: get only min/max clock rates
On Monday, December 9, 2024, Sudeep Holla wrote:
> On Tue, Dec 03, 2024 at 06:39:07PM +0100, Etienne Carriere wrote:
> > Remove limitation of 16 clock rates max for discrete clock rates
> > description when the SCMI firmware supports SCMI Clock protocol v2.0
> > or later.
> >
> > Driver clk-scmi.c is only interested in the min and max clock rates.
> > Get these by querying the first and last discrete rates with SCMI
> > clock protocol message ID CLOCK_DESCRIBE_RATES since the SCMI
> > specification v2.0 and later states that rates enumerated by this
> > command are to be enumerated in "numeric ascending order" [1].
> >
> > Preserve the implementation that queries all discrete rates (16 rates
> > max) to support SCMI firmware built on SCMI specification v1.0 [2]
> > where SCMI Clock protocol v1.0 does not explicitly require rates
> > described with CLOCK_DESCRIBE_RATES to be in ascending order.
> >
> > Link: https://developer.arm.com/documentation/den0056 [1]
> > Link: https://developer.arm.com/documentation/den0056/a [2]
> > Signed-off-by: Etienne Carriere <etienne.carriere@...s.st.com>
> > ---
>
> [...]
>
> > +
> > +static int scmi_clock_get_rates_bound(const struct scmi_protocol_handle *ph,
> > + u32 clk_id, struct scmi_clock_info *clk)
> > +{
>
> This new function seem to have unwraped the scmi_iterator_ops(namely
> prepare_message, update_state and process_response instead of reusing them.
> Can you please explain why it wasn't possible to reuse them ?
Since we're interested here only in min and max rates, let's query the
first and last rates only. This can save a bit of useless transactions between
agent and firmware in case there are many clocks with somewhat large
the discrete rate lists.
I though using the iterator for this specific case would add a bit more
complexity: it's expected to iterate (st->desc_index incremented from the
common scmi_iterator_run() function) whereas here I propose to send
only 2 messages.
BR,
Etienne
>
> --
> Regards,
> Sudeep
>
Powered by blists - more mailing lists