All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC v1 0/3] clk: meson: rounding for fast clocks on 32-bit SoCs
@ 2021-05-17 20:37 ` Martin Blumenstingl
  0 siblings, 0 replies; 39+ messages in thread
From: Martin Blumenstingl @ 2021-05-17 20:37 UTC (permalink / raw)
  To: mturquette, sboyd, narmstrong, jbrunet, linux-clk
  Cc: khilman, linux-kernel, linux-amlogic, linux-arm-kernel,
	Martin Blumenstingl

On the 32-bit Amlogic Meson8/8b/8m2 SoCs we run into a problem with the
fast HDMI PLL and it's OD (post-dividers). This clock tree can run at
up to approx. 3GHz.
This however causes a problem, because these rates require BIT(31) to
be usable. Unfortunately this is not the case with clk_ops.round_rate
on 32-bit systems. BIT(31) is reserved for the sign (+ or -).

clk_ops.determine_rate does not suffer from this limitation. It uses
an int to signal any errors and can then take all availble 32 bits for
the clock rate.

I am sending this as RFC to start a discussion whether:
- this is a good way to solve it?
- what are the alternatives?
- getting some feedback on areas that need to be improved


As always: any feedback is welcome!


Thank you!
Martin


Martin Blumenstingl (3):
  clk: divider: Add re-usable determine_rate implementations
  clk: meson: regmap: switch to determine_rate for the dividers
  clk: meson: pll: switch to determine_rate for the PLL ops

 drivers/clk/clk-divider.c      | 39 +++++++++++++++++++++++++++++++++-
 drivers/clk/meson/clk-pll.c    | 26 +++++++++++++----------
 drivers/clk/meson/clk-regmap.c | 19 ++++++++---------
 include/linux/clk-provider.h   |  6 ++++++
 4 files changed, 68 insertions(+), 22 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2021-05-19 15:12 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-17 20:37 [PATCH RFC v1 0/3] clk: meson: rounding for fast clocks on 32-bit SoCs Martin Blumenstingl
2021-05-17 20:37 ` Martin Blumenstingl
2021-05-17 20:37 ` Martin Blumenstingl
2021-05-17 20:37 ` [PATCH RFC v1 1/3] clk: divider: Add re-usable determine_rate implementations Martin Blumenstingl
2021-05-17 20:37   ` Martin Blumenstingl
2021-05-17 20:37   ` Martin Blumenstingl
2021-05-18  7:44   ` Jerome Brunet
2021-05-18  7:44     ` Jerome Brunet
2021-05-18  7:44     ` Jerome Brunet
2021-05-18 20:33     ` Martin Blumenstingl
2021-05-18 20:33       ` Martin Blumenstingl
2021-05-18 20:33       ` Martin Blumenstingl
2021-05-19 12:31       ` Jerome Brunet
2021-05-19 12:31         ` Jerome Brunet
2021-05-19 12:31         ` Jerome Brunet
2021-05-17 20:37 ` [PATCH RFC v1 2/3] clk: meson: regmap: switch to determine_rate for the dividers Martin Blumenstingl
2021-05-17 20:37   ` Martin Blumenstingl
2021-05-17 20:37   ` Martin Blumenstingl
2021-05-18  7:47   ` Jerome Brunet
2021-05-18  7:47     ` Jerome Brunet
2021-05-18  7:47     ` Jerome Brunet
2021-05-17 20:37 ` [PATCH RFC v1 3/3] clk: meson: pll: switch to determine_rate for the PLL ops Martin Blumenstingl
2021-05-17 20:37   ` Martin Blumenstingl
2021-05-17 20:37   ` Martin Blumenstingl
2021-05-18  7:50   ` Jerome Brunet
2021-05-18  7:50     ` Jerome Brunet
2021-05-18  7:50     ` Jerome Brunet
2021-05-18 20:17     ` Martin Blumenstingl
2021-05-18 20:17       ` Martin Blumenstingl
2021-05-18 20:17       ` Martin Blumenstingl
2021-05-19 15:10       ` Jerome Brunet
2021-05-19 15:10         ` Jerome Brunet
2021-05-19 15:10         ` Jerome Brunet
2021-05-18  7:37 ` [PATCH RFC v1 0/3] clk: meson: rounding for fast clocks on 32-bit SoCs Jerome Brunet
2021-05-18  7:37   ` Jerome Brunet
2021-05-18  7:37   ` Jerome Brunet
2021-05-18 20:20   ` Martin Blumenstingl
2021-05-18 20:20     ` Martin Blumenstingl
2021-05-18 20:20     ` Martin Blumenstingl

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.