mbox series

[v2,0/2] firmware: arm_scmi: unbound discrete rates, support round rate

Message ID 20241203173908.3148794-1-etienne.carriere@foss.st.com (mailing list archive)
Headers show
Series firmware: arm_scmi: unbound discrete rates, support round rate | expand

Message

Etienne Carriere Dec. 3, 2024, 5:39 p.m. UTC
These 2 patches propose to remove the limitation of 16 discrete rate max on
SCMI clocks and implements an effective round_rate operation on SCMI clocks
that provides non-linear possible rates.

The 1st patch removes a limitation on SCMI clocks that is not really needed
since the SCMI clock driver does not need to store the full list of
supported discrete rates but only require to store the min and max rate
values. This change was initially proposed in:
https://lore.kernel.org/lkml/20240729065306.1210733-1-etienne.carriere@foss.st.com/

The second patch implements a real round_rate operation that is needed for
example on STM32MP25 platforms for the video and the sound drivers that needs
to know the effective possible clock rates in order to select a compliant sample
clock frequency regarding the audio quality constraints.

STM32MP25 platforms also need the 1st patch of this series since many of the
audio clocks (SAIx and MDFx interfaces) and the LTDC video clock are provided
by SCMI clocks (CK_SCMI_FLEXGEN_x).

Etienne Carriere (2):
  firmware: arm_scmi: get only min/max clock rates
  firmware: arm_scmi: round rate bisecting in discrete rates

 drivers/clk/clk-scmi.c            |  21 ++-
 drivers/firmware/arm_scmi/clock.c | 205 +++++++++++++++++++++++++++++-
 include/linux/scmi_protocol.h     |   7 +-
 3 files changed, 220 insertions(+), 13 deletions(-)