public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 00/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
@ 2026-02-26 18:16 Brian Masney
  2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Brian Masney @ 2026-02-26 18:16 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd
  Cc: linux-clk, linux-kernel, Brian Masney, Abel Vesa,
	Andrea della Porta, Baolin Wang, Bjorn Andersson, Chanwoo Choi,
	Frank Li, Geert Uytterhoeven, Krzysztof Kozlowski, Orson Zhai,
	Sascha Hauer, Sudeep Holla, Sylwester Nawrocki, Tudor Ambarus,
	Alim Akhtar, arm-scmi, Chunyan Zhang, Cristian Marussi,
	Fabio Estevam, imx, linux-arm-kernel, linux-arm-msm,
	linux-renesas-soc, linux-samsung-soc, Peng Fan,
	Pengutronix Kernel Team

There are some clocks where the rounding is managed by the hardware, and
the determine_rate() clk ops is just a noop that simply returns 0. Based
on discussions with Stephen at Linux Plumbers Conference, he suggested
adding a flag for this particular case. So let's add a new flag, and
update the clk core so that the determine_rate() clk op is not required
when this flag is set.
    
This series adds the flag, some kunit tests, and updates all of the
relevant drivers under drivers/clk to use the new flag.
    
Once this is merged, and in Linus's tree, I can update the few remaining
clk drivers that are outside of drivers/clk via those subsystems at a
later time.

Merge Strategy
--------------
All of this needs to be directly merged by Stephen as one series into
his tree. Subsystem maintainers: please leave a Reviewed-by or Acked-by.
To reduce the noise, I am only CCing people on their respective drivers.

Note this series depends on 3 previously-posted patches in this git pull
to Stephen for v7.1.
https://lore.kernel.org/linux-clk/aZuK4-QJCXUeSxtL@redhat.com/
Hopefully I set the depeendencies up correctly in b4.

Signed-off-by: Brian Masney <bmasney@redhat.com>
---
Brian Masney (13):
      clk: add new flag CLK_ROUNDING_FW_MANAGED
      clk: test: add test suite for CLK_ROUNDING_FW_MANAGED flag
      clk: rp1: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: scpi: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: hisilicon: hi3660-stub: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: imx: scu: drop redundant init.ops variable assignment
      clk: imx: scu: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: qcom: rpm: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: qcom: rpmh: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: qcom: smd-rpm: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: renesas: rzg2l-cpg: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: samsung: acpm: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
      clk: sprd: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag

 drivers/clk/clk-rp1.c                   | 11 +----
 drivers/clk/clk-scpi.c                  | 14 +-----
 drivers/clk/clk.c                       | 24 ++++++++--
 drivers/clk/clk_test.c                  | 85 +++++++++++++++++++++++++++++++++
 drivers/clk/hisilicon/clk-hi3660-stub.c | 14 +-----
 drivers/clk/imx/clk-scu.c               | 23 +--------
 drivers/clk/qcom/clk-rpm.c              | 16 ++-----
 drivers/clk/qcom/clk-rpmh.c             |  8 +---
 drivers/clk/qcom/clk-smd-rpm.c          | 15 +-----
 drivers/clk/renesas/rzg2l-cpg.c         |  9 +---
 drivers/clk/samsung/clk-acpm.c          | 14 +-----
 drivers/clk/sprd/pll.c                  |  7 ---
 drivers/clk/sprd/pll.h                  |  2 +-
 include/linux/clk-provider.h            |  2 +
 14 files changed, 123 insertions(+), 121 deletions(-)
---
base-commit: 7d6661873f6b54c75195780a40d66bad3d482d8f
change-id: 20260226-clk-det-rate-fw-managed-4b8d061f31be
prerequisite-patch-id: 59198edc95aca82a29327137ad2af82ec13295b6
prerequisite-patch-id: 8932e170649711d7a80c57784033a37faadd519b
prerequisite-patch-id: 91c7b1851c5d77e504c49ce6bf14b3f8b84e826a

Best regards,
-- 
Brian Masney <bmasney@redhat.com>



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

* [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
  2026-02-26 18:16 [PATCH 00/13] clk: add new flag CLK_ROUNDING_FW_MANAGED Brian Masney
@ 2026-02-26 18:16 ` Brian Masney
  2026-02-27  8:16   ` Geert Uytterhoeven
                     ` (3 more replies)
  2026-02-26 18:16 ` [PATCH 04/13] clk: scpi: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
                   ` (2 subsequent siblings)
  3 siblings, 4 replies; 14+ messages in thread
From: Brian Masney @ 2026-02-26 18:16 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd
  Cc: linux-clk, linux-kernel, Brian Masney, Abel Vesa,
	Andrea della Porta, Baolin Wang, Bjorn Andersson, Chanwoo Choi,
	Frank Li, Geert Uytterhoeven, Krzysztof Kozlowski, Orson Zhai,
	Sascha Hauer, Sudeep Holla, Sylwester Nawrocki, Tudor Ambarus,
	Alim Akhtar, arm-scmi, Chunyan Zhang, Cristian Marussi,
	Fabio Estevam, imx, linux-arm-kernel, linux-arm-msm,
	linux-renesas-soc, linux-samsung-soc, Peng Fan,
	Pengutronix Kernel Team

There are some clocks where the rounding is managed by the hardware, and
the determine_rate() clk ops is just a noop that simply returns 0. Add a
new flag for these type of clocks, and update the clk core so that the
determine_rate() clk op is not required when this flag is set.

Signed-off-by: Brian Masney <bmasney@redhat.com>

---
To: Michael Turquette <mturquette@baylibre.com>
To: Stephen Boyd <sboyd@kernel.org>
To: Abel Vesa <abelvesa@kernel.org>
To: Andrea della Porta <andrea.porta@suse.com>
To: Baolin Wang <baolin.wang@linux.alibaba.com>
To: Bjorn Andersson <andersson@kernel.org>
To: Chanwoo Choi <cw00.choi@samsung.com>
To: Frank Li <Frank.Li@nxp.com>
To: Geert Uytterhoeven <geert+renesas@glider.be>
To: Krzysztof Kozlowski <krzk@kernel.org>
To: Orson Zhai <orsonzhai@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
To: Sudeep Holla <sudeep.holla@kernel.org>
To: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: Tudor Ambarus <tudor.ambarus@linaro.org>
Cc: linux-clk@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: arm-scmi@vger.kernel.org
Cc: Chunyan Zhang <zhang.lyra@gmail.com>
Cc: Cristian Marussi <cristian.marussi@arm.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
---
 drivers/clk/clk.c            | 24 +++++++++++++++++++++---
 include/linux/clk-provider.h |  2 ++
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index fd418dc988b1c60c49e3ac9c0c44aa132dd5da28..0a522a0817411c7f7c6e9cffd6f024e672a331a8 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1557,6 +1557,20 @@ static int __init clk_disable_unused(void)
 }
 late_initcall_sync(clk_disable_unused);
 
+/**
+ * clk_is_rounding_fw_managed - Check to see if clk rounding is handled by the
+ * firmware.
+ * @core: the clk to check
+ *
+ * Clks that have this flag enabled do not need to have a determine_rate() op
+ * set, and will always return success for any rounding operation since the
+ * firmware will deal with the rounding.
+ */
+static inline bool clk_is_rounding_fw_managed(struct clk_core *core)
+{
+	return core->flags & CLK_ROUNDING_FW_MANAGED;
+}
+
 static int clk_core_determine_round_nolock(struct clk_core *core,
 					   struct clk_rate_request *req)
 {
@@ -1589,6 +1603,8 @@ static int clk_core_determine_round_nolock(struct clk_core *core,
 		req->rate = core->rate;
 	} else if (core->ops->determine_rate) {
 		return core->ops->determine_rate(core->hw, req);
+	} else if (clk_is_rounding_fw_managed(core)) {
+		return 0;
 	} else {
 		return -EINVAL;
 	}
@@ -1673,7 +1689,7 @@ EXPORT_SYMBOL_GPL(clk_hw_forward_rate_request);
 
 static bool clk_core_can_round(struct clk_core * const core)
 {
-	return core->ops->determine_rate;
+	return core->ops->determine_rate || clk_is_rounding_fw_managed(core);
 }
 
 static int clk_core_round_rate_nolock(struct clk_core *core,
@@ -3528,6 +3544,7 @@ static const struct {
 	ENTRY(CLK_IS_CRITICAL),
 	ENTRY(CLK_OPS_PARENT_ENABLE),
 	ENTRY(CLK_DUTY_CYCLE_PARENT),
+	ENTRY(CLK_ROUNDING_FW_MANAGED),
 #undef ENTRY
 };
 
@@ -3906,7 +3923,7 @@ static int __clk_core_init(struct clk_core *core)
 
 	/* check that clk_ops are sane.  See Documentation/driver-api/clk.rst */
 	if (core->ops->set_rate && !core->ops->determine_rate &&
-	      core->ops->recalc_rate) {
+	      core->ops->recalc_rate && !clk_is_rounding_fw_managed(core)) {
 		pr_err("%s: %s must implement .determine_rate in addition to .recalc_rate\n",
 		       __func__, core->name);
 		ret = -EINVAL;
@@ -3920,7 +3937,8 @@ static int __clk_core_init(struct clk_core *core)
 		goto out;
 	}
 
-	if (core->ops->set_parent && !core->ops->determine_rate) {
+	if (core->ops->set_parent && !core->ops->determine_rate &&
+	    !clk_is_rounding_fw_managed(core)) {
 		pr_err("%s: %s must implement .set_parent & .determine_rate\n",
 			__func__, core->name);
 		ret = -EINVAL;
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 1cda2c78dffaff037f0f16b0f11106b63b3a746f..187f8248a9c840c701cbbba99bb7cdeef7b654ee 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -32,6 +32,8 @@
 #define CLK_OPS_PARENT_ENABLE	BIT(12)
 /* duty cycle call may be forwarded to the parent clock */
 #define CLK_DUTY_CYCLE_PARENT	BIT(13)
+/* clock rate rounding is managed by firmware, don't require determine_rate */
+#define CLK_ROUNDING_FW_MANAGED		BIT(14)
 
 struct clk;
 struct clk_hw;

-- 
2.53.0



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

* [PATCH 04/13] clk: scpi: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
  2026-02-26 18:16 [PATCH 00/13] clk: add new flag CLK_ROUNDING_FW_MANAGED Brian Masney
  2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
@ 2026-02-26 18:16 ` Brian Masney
  2026-03-02 11:26   ` Sudeep Holla
  2026-02-26 18:16 ` [PATCH 06/13] clk: imx: scu: drop redundant init.ops variable assignment Brian Masney
  2026-02-26 18:16 ` [PATCH 07/13] clk: imx: scu: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
  3 siblings, 1 reply; 14+ messages in thread
From: Brian Masney @ 2026-02-26 18:16 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd
  Cc: linux-clk, linux-kernel, Brian Masney, Sudeep Holla,
	Cristian Marussi, arm-scmi, linux-arm-kernel

This clk driver has a noop determine_rate clk op. Drop this empty
function, and enable the CLK_ROUNDING_FW_MANAGED flag.

Signed-off-by: Brian Masney <bmasney@redhat.com>

---
To: Sudeep Holla <sudeep.holla@kernel.org>
To: Michael Turquette <mturquette@baylibre.com>
To: Stephen Boyd <sboyd@kernel.org>
Cc: Cristian Marussi <cristian.marussi@arm.com>
Cc: arm-scmi@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-clk@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/clk/clk-scpi.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/clk/clk-scpi.c b/drivers/clk/clk-scpi.c
index 7806569cd0d5c4e32700edb10e4edf2185610a81..e13f09cfadc70551c3c7955538e5a212fb0601a3 100644
--- a/drivers/clk/clk-scpi.c
+++ b/drivers/clk/clk-scpi.c
@@ -32,18 +32,6 @@ static unsigned long scpi_clk_recalc_rate(struct clk_hw *hw,
 	return clk->scpi_ops->clk_get_val(clk->id);
 }
 
-static int scpi_clk_determine_rate(struct clk_hw *hw,
-				   struct clk_rate_request *req)
-{
-	/*
-	 * We can't figure out what rate it will be, so just return the
-	 * rate back to the caller. scpi_clk_recalc_rate() will be called
-	 * after the rate is set and we'll know what rate the clock is
-	 * running at then.
-	 */
-	return 0;
-}
-
 static int scpi_clk_set_rate(struct clk_hw *hw, unsigned long rate,
 			     unsigned long parent_rate)
 {
@@ -54,7 +42,6 @@ static int scpi_clk_set_rate(struct clk_hw *hw, unsigned long rate,
 
 static const struct clk_ops scpi_clk_ops = {
 	.recalc_rate = scpi_clk_recalc_rate,
-	.determine_rate = scpi_clk_determine_rate,
 	.set_rate = scpi_clk_set_rate,
 };
 
@@ -156,6 +143,7 @@ scpi_clk_ops_init(struct device *dev, const struct of_device_id *match,
 		if (IS_ERR(sclk->info))
 			return PTR_ERR(sclk->info);
 	} else if (init.ops == &scpi_clk_ops) {
+		init.flags |= CLK_ROUNDING_FW_MANAGED;
 		if (sclk->scpi_ops->clk_get_range(sclk->id, &min, &max) || !max)
 			return -EINVAL;
 	} else {

-- 
2.53.0



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

* [PATCH 06/13] clk: imx: scu: drop redundant init.ops variable assignment
  2026-02-26 18:16 [PATCH 00/13] clk: add new flag CLK_ROUNDING_FW_MANAGED Brian Masney
  2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
  2026-02-26 18:16 ` [PATCH 04/13] clk: scpi: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
@ 2026-02-26 18:16 ` Brian Masney
  2026-02-27  2:02   ` Peng Fan
  2026-02-26 18:16 ` [PATCH 07/13] clk: imx: scu: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
  3 siblings, 1 reply; 14+ messages in thread
From: Brian Masney @ 2026-02-26 18:16 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd
  Cc: linux-clk, linux-kernel, Brian Masney, Abel Vesa, Frank Li,
	Sascha Hauer, Peng Fan, Pengutronix Kernel Team, Fabio Estevam,
	imx, linux-arm-kernel

The init.ops is assigned a default value, however right below it is an
if, else if, and else where all of them also assign a value to init.ops.
Drop the redundant init.ops assignment at the top.

Fixes: 3b9ea606cda53 ("clk: imx: scu: add cpu frequency scaling support")
Signed-off-by: Brian Masney <bmasney@redhat.com>

---
To: Abel Vesa <abelvesa@kernel.org>
To: Michael Turquette <mturquette@baylibre.com>
To: Stephen Boyd <sboyd@kernel.org>
To: Frank Li <Frank.Li@nxp.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: linux-clk@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/clk/imx/clk-scu.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c
index a85ec48a798b58a12f893587c85709bbd8476310..a39c68d664655537e81df55c7e6d32304de9338a 100644
--- a/drivers/clk/imx/clk-scu.c
+++ b/drivers/clk/imx/clk-scu.c
@@ -475,7 +475,6 @@ struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
 	clk->clk_type = clk_type;
 
 	init.name = name;
-	init.ops = &clk_scu_ops;
 	if (rsrc_id == IMX_SC_R_A35 || rsrc_id == IMX_SC_R_A53 || rsrc_id == IMX_SC_R_A72)
 		init.ops = &clk_scu_cpu_ops;
 	else if (rsrc_id == IMX_SC_R_PI_0_PLL)

-- 
2.53.0



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

* [PATCH 07/13] clk: imx: scu: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
  2026-02-26 18:16 [PATCH 00/13] clk: add new flag CLK_ROUNDING_FW_MANAGED Brian Masney
                   ` (2 preceding siblings ...)
  2026-02-26 18:16 ` [PATCH 06/13] clk: imx: scu: drop redundant init.ops variable assignment Brian Masney
@ 2026-02-26 18:16 ` Brian Masney
  2026-02-27  2:04   ` Peng Fan
  3 siblings, 1 reply; 14+ messages in thread
From: Brian Masney @ 2026-02-26 18:16 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd
  Cc: linux-clk, linux-kernel, Brian Masney, Abel Vesa, Frank Li,
	Sascha Hauer, Peng Fan, Pengutronix Kernel Team, Fabio Estevam,
	imx, linux-arm-kernel

This clk driver has a noop determine_rate clk op. Drop this empty
function, and enable the CLK_ROUNDING_FW_MANAGED flag.

Signed-off-by: Brian Masney <bmasney@redhat.com>

---
To: Abel Vesa <abelvesa@kernel.org>
To: Michael Turquette <mturquette@baylibre.com>
To: Stephen Boyd <sboyd@kernel.org>
To: Frank Li <Frank.Li@nxp.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: linux-clk@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/clk/imx/clk-scu.c | 22 +---------------------
 1 file changed, 1 insertion(+), 21 deletions(-)

diff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c
index a39c68d664655537e81df55c7e6d32304de9338a..db8e5773140a7f5fcb3b36f372e22f43675ee6ad 100644
--- a/drivers/clk/imx/clk-scu.c
+++ b/drivers/clk/imx/clk-scu.c
@@ -262,23 +262,6 @@ static unsigned long clk_scu_recalc_rate(struct clk_hw *hw,
 	return le32_to_cpu(msg.data.resp.rate);
 }
 
-/*
- * clk_scu_determine_rate - Returns the closest rate for a SCU clock
- * @hw: clock to round rate for
- * @req: clock rate request
- *
- * Returns 0 on success, a negative error on failure
- */
-static int clk_scu_determine_rate(struct clk_hw *hw,
-				  struct clk_rate_request *req)
-{
-	/*
-	 * Assume we support all the requested rate and let the SCU firmware
-	 * to handle the left work
-	 */
-	return 0;
-}
-
 static int clk_scu_atf_set_cpu_rate(struct clk_hw *hw, unsigned long rate,
 				    unsigned long parent_rate)
 {
@@ -436,7 +419,6 @@ static void clk_scu_unprepare(struct clk_hw *hw)
 
 static const struct clk_ops clk_scu_ops = {
 	.recalc_rate = clk_scu_recalc_rate,
-	.determine_rate = clk_scu_determine_rate,
 	.set_rate = clk_scu_set_rate,
 	.get_parent = clk_scu_get_parent,
 	.set_parent = clk_scu_set_parent,
@@ -446,7 +428,6 @@ static const struct clk_ops clk_scu_ops = {
 
 static const struct clk_ops clk_scu_cpu_ops = {
 	.recalc_rate = clk_scu_recalc_rate,
-	.determine_rate = clk_scu_determine_rate,
 	.set_rate = clk_scu_atf_set_cpu_rate,
 	.prepare = clk_scu_prepare,
 	.unprepare = clk_scu_unprepare,
@@ -454,7 +435,6 @@ static const struct clk_ops clk_scu_cpu_ops = {
 
 static const struct clk_ops clk_scu_pi_ops = {
 	.recalc_rate = clk_scu_recalc_rate,
-	.determine_rate = clk_scu_determine_rate,
 	.set_rate    = clk_scu_set_rate,
 };
 
@@ -491,7 +471,7 @@ struct clk_hw *__imx_clk_scu(struct device *dev, const char *name,
 	 * clock status from HW instead of using the possible invalid
 	 * cached rate.
 	 */
-	init.flags = CLK_GET_RATE_NOCACHE;
+	init.flags = CLK_GET_RATE_NOCACHE | CLK_ROUNDING_FW_MANAGED;
 	clk->hw.init = &init;
 
 	hw = &clk->hw;

-- 
2.53.0



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

* Re: [PATCH 06/13] clk: imx: scu: drop redundant init.ops variable assignment
  2026-02-26 18:16 ` [PATCH 06/13] clk: imx: scu: drop redundant init.ops variable assignment Brian Masney
@ 2026-02-27  2:02   ` Peng Fan
  0 siblings, 0 replies; 14+ messages in thread
From: Peng Fan @ 2026-02-27  2:02 UTC (permalink / raw)
  To: Brian Masney
  Cc: Michael Turquette, Stephen Boyd, linux-clk, linux-kernel,
	Abel Vesa, Frank Li, Sascha Hauer, Peng Fan,
	Pengutronix Kernel Team, Fabio Estevam, imx, linux-arm-kernel

On Thu, Feb 26, 2026 at 01:16:50PM -0500, Brian Masney wrote:
>The init.ops is assigned a default value, however right below it is an
>if, else if, and else where all of them also assign a value to init.ops.
>Drop the redundant init.ops assignment at the top.
>
>Fixes: 3b9ea606cda53 ("clk: imx: scu: add cpu frequency scaling support")
>Signed-off-by: Brian Masney <bmasney@redhat.com>
>

Reviewed-by: Peng Fan <peng.fan@nxp.com>


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

* Re: [PATCH 07/13] clk: imx: scu: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
  2026-02-26 18:16 ` [PATCH 07/13] clk: imx: scu: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
@ 2026-02-27  2:04   ` Peng Fan
  0 siblings, 0 replies; 14+ messages in thread
From: Peng Fan @ 2026-02-27  2:04 UTC (permalink / raw)
  To: Brian Masney
  Cc: Michael Turquette, Stephen Boyd, linux-clk, linux-kernel,
	Abel Vesa, Frank Li, Sascha Hauer, Peng Fan,
	Pengutronix Kernel Team, Fabio Estevam, imx, linux-arm-kernel

On Thu, Feb 26, 2026 at 01:16:51PM -0500, Brian Masney wrote:
>This clk driver has a noop determine_rate clk op. Drop this empty
>function, and enable the CLK_ROUNDING_FW_MANAGED flag.
>
>Signed-off-by: Brian Masney <bmasney@redhat.com>
>

Reviewed-by: Peng Fan <peng.fan@nxp.com>


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

* Re: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
  2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
@ 2026-02-27  8:16   ` Geert Uytterhoeven
  2026-02-27  8:57     ` Biju Das
  2026-02-27 12:00   ` Biju Das
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 14+ messages in thread
From: Geert Uytterhoeven @ 2026-02-27  8:16 UTC (permalink / raw)
  To: Brian Masney
  Cc: Michael Turquette, Stephen Boyd, linux-clk, linux-kernel,
	Abel Vesa, Andrea della Porta, Baolin Wang, Bjorn Andersson,
	Chanwoo Choi, Frank Li, Geert Uytterhoeven, Krzysztof Kozlowski,
	Orson Zhai, Sascha Hauer, Sudeep Holla, Sylwester Nawrocki,
	Tudor Ambarus, Alim Akhtar, arm-scmi, Chunyan Zhang,
	Cristian Marussi, Fabio Estevam, imx, linux-arm-kernel,
	linux-arm-msm, linux-renesas-soc, linux-samsung-soc, Peng Fan,
	Pengutronix Kernel Team

Hi Brian,

Thanks for your patch!

On Thu, 26 Feb 2026 at 19:17, Brian Masney <bmasney@redhat.com> wrote:
> There are some clocks where the rounding is managed by the hardware, and

s/hardware/firmware/

You got me totally confused, also/especially in the cover letter! ;-)

> the determine_rate() clk ops is just a noop that simply returns 0. Add a
> new flag for these type of clocks, and update the clk core so that the
> determine_rate() clk op is not required when this flag is set.
>
> Signed-off-by: Brian Masney <bmasney@redhat.com>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


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

* RE: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
  2026-02-27  8:16   ` Geert Uytterhoeven
@ 2026-02-27  8:57     ` Biju Das
  0 siblings, 0 replies; 14+ messages in thread
From: Biju Das @ 2026-02-27  8:57 UTC (permalink / raw)
  To: geert, Brian Masney
  Cc: Michael Turquette, Stephen Boyd, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, Abel Vesa, Andrea della Porta,
	Baolin Wang, Bjorn Andersson, Chanwoo Choi, Frank Li,
	Geert Uytterhoeven, Krzysztof Kozlowski, Orson Zhai, Sascha Hauer,
	Sudeep Holla, Sylwester Nawrocki, Tudor Ambarus, Alim Akhtar,
	arm-scmi@vger.kernel.org, Chunyan Zhang, Cristian Marussi,
	Fabio Estevam, imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-samsung-soc@vger.kernel.org, Peng Fan,
	Pengutronix Kernel Team

Thanks, I will test and provide the feedback.

Cheers,
Biju

> -----Original Message-----
> From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> On Behalf Of Geert Uytterhoeven
> Sent: 27 February 2026 08:17
> Subject: Re: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
> 
> Hi Brian,
> 
> Thanks for your patch!
> 
> On Thu, 26 Feb 2026 at 19:17, Brian Masney <bmasney@redhat.com> wrote:
> > There are some clocks where the rounding is managed by the hardware,
> > and
> 
> s/hardware/firmware/
> 
> You got me totally confused, also/especially in the cover letter! ;-)
> 
> > the determine_rate() clk ops is just a noop that simply returns 0. Add
> > a new flag for these type of clocks, and update the clk core so that
> > the
> > determine_rate() clk op is not required when this flag is set.
> >
> > Signed-off-by: Brian Masney <bmasney@redhat.com>
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But when I'm talking to
> journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds


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

* RE: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
  2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
  2026-02-27  8:16   ` Geert Uytterhoeven
@ 2026-02-27 12:00   ` Biju Das
  2026-02-27 14:44     ` Brian Masney
  2026-02-27 16:38   ` Brian Masney
  2026-03-02 11:27   ` Sudeep Holla
  3 siblings, 1 reply; 14+ messages in thread
From: Biju Das @ 2026-02-27 12:00 UTC (permalink / raw)
  To: Brian Masney, Michael Turquette, Stephen Boyd
  Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	Abel Vesa, Andrea della Porta, Baolin Wang, Bjorn Andersson,
	Chanwoo Choi, Frank Li, Geert Uytterhoeven, Krzysztof Kozlowski,
	Orson Zhai, Sascha Hauer, Sudeep Holla, Sylwester Nawrocki,
	Tudor Ambarus, Alim Akhtar, arm-scmi@vger.kernel.org,
	Chunyan Zhang, Cristian Marussi, Fabio Estevam,
	imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-samsung-soc@vger.kernel.org, Peng Fan,
	Pengutronix Kernel Team

Hi Brain,

Thanks for the patch

> -----Original Message-----
> From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> On Behalf Of Brian Masney
> Sent: 26 February 2026 18:17
> Subject: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
> 
> There are some clocks where the rounding is managed by the hardware, and the determine_rate() clk ops
> is just a noop that simply returns 0. Add a new flag for these type of clocks, and update the clk core
> so that the
> determine_rate() clk op is not required when this flag is set.
> 
> Signed-off-by: Brian Masney <bmasney@redhat.com>
> 
> ---
> To: Michael Turquette <mturquette@baylibre.com>
> To: Stephen Boyd <sboyd@kernel.org>
> To: Abel Vesa <abelvesa@kernel.org>
> To: Andrea della Porta <andrea.porta@suse.com>
> To: Baolin Wang <baolin.wang@linux.alibaba.com>
> To: Bjorn Andersson <andersson@kernel.org>
> To: Chanwoo Choi <cw00.choi@samsung.com>
> To: Frank Li <Frank.Li@nxp.com>
> To: Geert Uytterhoeven <geert+renesas@glider.be>
> To: Krzysztof Kozlowski <krzk@kernel.org>
> To: Orson Zhai <orsonzhai@gmail.com>
> To: Sascha Hauer <s.hauer@pengutronix.de>
> To: Sudeep Holla <sudeep.holla@kernel.org>
> To: Sylwester Nawrocki <s.nawrocki@samsung.com>
> To: Tudor Ambarus <tudor.ambarus@linaro.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: Alim Akhtar <alim.akhtar@samsung.com>
> Cc: arm-scmi@vger.kernel.org
> Cc: Chunyan Zhang <zhang.lyra@gmail.com>
> Cc: Cristian Marussi <cristian.marussi@arm.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: imx@lists.linux.dev
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-samsung-soc@vger.kernel.org
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> ---
>  drivers/clk/clk.c            | 24 +++++++++++++++++++++---
>  include/linux/clk-provider.h |  2 ++
>  2 files changed, 23 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index
> fd418dc988b1c60c49e3ac9c0c44aa132dd5da28..0a522a0817411c7f7c6e9cffd6f024e672a331a8 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -1557,6 +1557,20 @@ static int __init clk_disable_unused(void)  }
> late_initcall_sync(clk_disable_unused);
> 
> +/**
> + * clk_is_rounding_fw_managed - Check to see if clk rounding is handled
> +by the
> + * firmware.
> + * @core: the clk to check
> + *
> + * Clks that have this flag enabled do not need to have a
> +determine_rate() op
> + * set, and will always return success for any rounding operation since
> +the
> + * firmware will deal with the rounding.
> + */
> +static inline bool clk_is_rounding_fw_managed(struct clk_core *core) {
> +	return core->flags & CLK_ROUNDING_FW_MANAGED; }
> +
>  static int clk_core_determine_round_nolock(struct clk_core *core,
>  					   struct clk_rate_request *req)
>  {
> @@ -1589,6 +1603,8 @@ static int clk_core_determine_round_nolock(struct clk_core *core,
>  		req->rate = core->rate;
>  	} else if (core->ops->determine_rate) {
>  		return core->ops->determine_rate(core->hw, req);
> +	} else if (clk_is_rounding_fw_managed(core)) {
> +		return 0;
>  	} else {
>  		return -EINVAL;
>  	}
> @@ -1673,7 +1689,7 @@ EXPORT_SYMBOL_GPL(clk_hw_forward_rate_request);
> 
>  static bool clk_core_can_round(struct clk_core * const core)  {
> -	return core->ops->determine_rate;
> +	return core->ops->determine_rate || clk_is_rounding_fw_managed(core);
>  }
> 
>  static int clk_core_round_rate_nolock(struct clk_core *core, @@ -3528,6 +3544,7 @@ static const
> struct {
>  	ENTRY(CLK_IS_CRITICAL),
>  	ENTRY(CLK_OPS_PARENT_ENABLE),
>  	ENTRY(CLK_DUTY_CYCLE_PARENT),
> +	ENTRY(CLK_ROUNDING_FW_MANAGED),
>  #undef ENTRY
>  };
> 
> @@ -3906,7 +3923,7 @@ static int __clk_core_init(struct clk_core *core)
> 
>  	/* check that clk_ops are sane.  See Documentation/driver-api/clk.rst */
>  	if (core->ops->set_rate && !core->ops->determine_rate &&
> -	      core->ops->recalc_rate) {
> +	      core->ops->recalc_rate && !clk_is_rounding_fw_managed(core)) {
>  		pr_err("%s: %s must implement .determine_rate in addition to .recalc_rate\n",
>  		       __func__, core->name);
>  		ret = -EINVAL;
> @@ -3920,7 +3937,8 @@ static int __clk_core_init(struct clk_core *core)
>  		goto out;
>  	}
> 
> -	if (core->ops->set_parent && !core->ops->determine_rate) {
> +	if (core->ops->set_parent && !core->ops->determine_rate &&
> +	    !clk_is_rounding_fw_managed(core)) {

>  		pr_err("%s: %s must implement .set_parent & .determine_rate\n",
>  			__func__, core->name);
>  		ret = -EINVAL;


After applying patch#11, I get a message as you removed .determine_rate, Also it breaks display.

[    0.096414] __clk_core_init: .pll5_foutpostdiv must implement .round_rate or .determine_rate in addition to .recalc_rate


Cheers,
Biju

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

* Re: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
  2026-02-27 12:00   ` Biju Das
@ 2026-02-27 14:44     ` Brian Masney
  0 siblings, 0 replies; 14+ messages in thread
From: Brian Masney @ 2026-02-27 14:44 UTC (permalink / raw)
  To: Biju Das
  Cc: Michael Turquette, Stephen Boyd, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, Abel Vesa, Andrea della Porta,
	Baolin Wang, Bjorn Andersson, Chanwoo Choi, Frank Li,
	Geert Uytterhoeven, Krzysztof Kozlowski, Orson Zhai, Sascha Hauer,
	Sudeep Holla, Sylwester Nawrocki, Tudor Ambarus, Alim Akhtar,
	arm-scmi@vger.kernel.org, Chunyan Zhang, Cristian Marussi,
	Fabio Estevam, imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-samsung-soc@vger.kernel.org, Peng Fan,
	Pengutronix Kernel Team

On Fri, Feb 27, 2026 at 12:00:55PM +0000, Biju Das wrote:
> > -----Original Message-----
> > From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> On Behalf Of Brian Masney
> > Sent: 26 February 2026 18:17
> > Subject: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
> > 
> > There are some clocks where the rounding is managed by the hardware, and the determine_rate() clk ops
> > is just a noop that simply returns 0. Add a new flag for these type of clocks, and update the clk core
> > so that the
> > determine_rate() clk op is not required when this flag is set.
> > 
> > Signed-off-by: Brian Masney <bmasney@redhat.com>
> > 
[snip]
> >  drivers/clk/clk.c            | 24 +++++++++++++++++++++---
> >  include/linux/clk-provider.h |  2 ++
> >  2 files changed, 23 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index
> > fd418dc988b1c60c49e3ac9c0c44aa132dd5da28..0a522a0817411c7f7c6e9cffd6f024e672a331a8 100644
> > --- a/drivers/clk/clk.c
> > +++ b/drivers/clk/clk.c
> > @@ -1557,6 +1557,20 @@ static int __init clk_disable_unused(void)  }
> > late_initcall_sync(clk_disable_unused);
> > 
> > +/**
> > + * clk_is_rounding_fw_managed - Check to see if clk rounding is handled
> > +by the
> > + * firmware.
> > + * @core: the clk to check
> > + *
> > + * Clks that have this flag enabled do not need to have a
> > +determine_rate() op
> > + * set, and will always return success for any rounding operation since
> > +the
> > + * firmware will deal with the rounding.
> > + */
> > +static inline bool clk_is_rounding_fw_managed(struct clk_core *core) {
> > +	return core->flags & CLK_ROUNDING_FW_MANAGED; }
> > +
> >  static int clk_core_determine_round_nolock(struct clk_core *core,
> >  					   struct clk_rate_request *req)
> >  {
> > @@ -1589,6 +1603,8 @@ static int clk_core_determine_round_nolock(struct clk_core *core,
> >  		req->rate = core->rate;
> >  	} else if (core->ops->determine_rate) {
> >  		return core->ops->determine_rate(core->hw, req);
> > +	} else if (clk_is_rounding_fw_managed(core)) {
> > +		return 0;
> >  	} else {
> >  		return -EINVAL;
> >  	}
> > @@ -1673,7 +1689,7 @@ EXPORT_SYMBOL_GPL(clk_hw_forward_rate_request);
> > 
> >  static bool clk_core_can_round(struct clk_core * const core)  {
> > -	return core->ops->determine_rate;
> > +	return core->ops->determine_rate || clk_is_rounding_fw_managed(core);
> >  }
> > 
> >  static int clk_core_round_rate_nolock(struct clk_core *core, @@ -3528,6 +3544,7 @@ static const
> > struct {
> >  	ENTRY(CLK_IS_CRITICAL),
> >  	ENTRY(CLK_OPS_PARENT_ENABLE),
> >  	ENTRY(CLK_DUTY_CYCLE_PARENT),
> > +	ENTRY(CLK_ROUNDING_FW_MANAGED),
> >  #undef ENTRY
> >  };
> > 
> > @@ -3906,7 +3923,7 @@ static int __clk_core_init(struct clk_core *core)
> > 
> >  	/* check that clk_ops are sane.  See Documentation/driver-api/clk.rst */
> >  	if (core->ops->set_rate && !core->ops->determine_rate &&
> > -	      core->ops->recalc_rate) {
> > +	      core->ops->recalc_rate && !clk_is_rounding_fw_managed(core)) {
> >  		pr_err("%s: %s must implement .determine_rate in addition to .recalc_rate\n",
> >  		       __func__, core->name);
> >  		ret = -EINVAL;
> > @@ -3920,7 +3937,8 @@ static int __clk_core_init(struct clk_core *core)
> >  		goto out;
> >  	}
> > 
> > -	if (core->ops->set_parent && !core->ops->determine_rate) {
> > +	if (core->ops->set_parent && !core->ops->determine_rate &&
> > +	    !clk_is_rounding_fw_managed(core)) {
> 
> >  		pr_err("%s: %s must implement .set_parent & .determine_rate\n",
> >  			__func__, core->name);
> >  		ret = -EINVAL;
> 
> 
> After applying patch#11, I get a message as you removed .determine_rate, Also it breaks display.
> 
> [    0.096414] __clk_core_init: .pll5_foutpostdiv must implement .round_rate or .determine_rate in addition to .recalc_rate

Thanks for testing. This happens because rzg2l_cpg_pll_clk_register()
doesn't have the new flag set. I'll fix this, and go through all of the
others again just to make sure I don't miss any others.

Brian



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

* Re: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
  2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
  2026-02-27  8:16   ` Geert Uytterhoeven
  2026-02-27 12:00   ` Biju Das
@ 2026-02-27 16:38   ` Brian Masney
  2026-03-02 11:27   ` Sudeep Holla
  3 siblings, 0 replies; 14+ messages in thread
From: Brian Masney @ 2026-02-27 16:38 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd
  Cc: linux-clk, linux-kernel, Abel Vesa, Andrea della Porta,
	Baolin Wang, Bjorn Andersson, Chanwoo Choi, Frank Li,
	Geert Uytterhoeven, Krzysztof Kozlowski, Orson Zhai, Sascha Hauer,
	Sudeep Holla, Sylwester Nawrocki, Tudor Ambarus, Alim Akhtar,
	arm-scmi, Chunyan Zhang, Cristian Marussi, Fabio Estevam, imx,
	linux-arm-kernel, linux-arm-msm, linux-renesas-soc,
	linux-samsung-soc, Peng Fan, Pengutronix Kernel Team, Biju Das

On Thu, Feb 26, 2026 at 01:16:45PM -0500, Brian Masney wrote:
> There are some clocks where the rounding is managed by the hardware, and
> the determine_rate() clk ops is just a noop that simply returns 0. Add a
> new flag for these type of clocks, and update the clk core so that the
> determine_rate() clk op is not required when this flag is set.
> 
> Signed-off-by: Brian Masney <bmasney@redhat.com>
> 
...
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index 1cda2c78dffaff037f0f16b0f11106b63b3a746f..187f8248a9c840c701cbbba99bb7cdeef7b654ee 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -32,6 +32,8 @@
>  #define CLK_OPS_PARENT_ENABLE	BIT(12)
>  /* duty cycle call may be forwarded to the parent clock */
>  #define CLK_DUTY_CYCLE_PARENT	BIT(13)
> +/* clock rate rounding is managed by firmware, don't require determine_rate */
> +#define CLK_ROUNDING_FW_MANAGED		BIT(14)

Based on a conversation in the Renesas driver change, I think we should
rename this flag to CLK_ROUNDING_NOOP. Let me know if there are any
objections, or suggestions for a better name. I'll let let this sit out
there for about a week or so before sending a v2.

Brian



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

* Re: [PATCH 04/13] clk: scpi: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag
  2026-02-26 18:16 ` [PATCH 04/13] clk: scpi: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
@ 2026-03-02 11:26   ` Sudeep Holla
  0 siblings, 0 replies; 14+ messages in thread
From: Sudeep Holla @ 2026-03-02 11:26 UTC (permalink / raw)
  To: Brian Masney
  Cc: Michael Turquette, Sudeep Holla, Stephen Boyd, linux-clk,
	linux-kernel, Cristian Marussi, arm-scmi, linux-arm-kernel

On Thu, Feb 26, 2026 at 01:16:48PM -0500, Brian Masney wrote:
> This clk driver has a noop determine_rate clk op. Drop this empty
> function, and enable the CLK_ROUNDING_FW_MANAGED flag.
> 
> Signed-off-by: Brian Masney <bmasney@redhat.com>
> 

Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>

-- 
Regards,
Sudeep


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

* Re: [PATCH 01/13] clk: add new flag CLK_ROUNDING_FW_MANAGED
  2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
                     ` (2 preceding siblings ...)
  2026-02-27 16:38   ` Brian Masney
@ 2026-03-02 11:27   ` Sudeep Holla
  3 siblings, 0 replies; 14+ messages in thread
From: Sudeep Holla @ 2026-03-02 11:27 UTC (permalink / raw)
  To: Brian Masney
  Cc: Michael Turquette, Stephen Boyd, linux-clk, Sudeep Holla,
	linux-kernel, Abel Vesa, Andrea della Porta, Baolin Wang,
	Bjorn Andersson, Chanwoo Choi, Frank Li, Geert Uytterhoeven,
	Krzysztof Kozlowski, Orson Zhai, Sascha Hauer, Sylwester Nawrocki,
	Tudor Ambarus, Alim Akhtar, arm-scmi, Chunyan Zhang,
	Cristian Marussi, Fabio Estevam, imx, linux-arm-kernel,
	linux-arm-msm, linux-renesas-soc, linux-samsung-soc, Peng Fan,
	Pengutronix Kernel Team

On Thu, Feb 26, 2026 at 01:16:45PM -0500, Brian Masney wrote:
> There are some clocks where the rounding is managed by the hardware, and
> the determine_rate() clk ops is just a noop that simply returns 0. Add a
> new flag for these type of clocks, and update the clk core so that the
> determine_rate() clk op is not required when this flag is set.
> 
> Signed-off-by: Brian Masney <bmasney@redhat.com>
> 

Acked-by: Sudeep Holla <sudeep.holla@kernel.org>

-- 
Regards,
Sudeep


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

end of thread, other threads:[~2026-03-02 11:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-26 18:16 [PATCH 00/13] clk: add new flag CLK_ROUNDING_FW_MANAGED Brian Masney
2026-02-26 18:16 ` [PATCH 01/13] " Brian Masney
2026-02-27  8:16   ` Geert Uytterhoeven
2026-02-27  8:57     ` Biju Das
2026-02-27 12:00   ` Biju Das
2026-02-27 14:44     ` Brian Masney
2026-02-27 16:38   ` Brian Masney
2026-03-02 11:27   ` Sudeep Holla
2026-02-26 18:16 ` [PATCH 04/13] clk: scpi: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
2026-03-02 11:26   ` Sudeep Holla
2026-02-26 18:16 ` [PATCH 06/13] clk: imx: scu: drop redundant init.ops variable assignment Brian Masney
2026-02-27  2:02   ` Peng Fan
2026-02-26 18:16 ` [PATCH 07/13] clk: imx: scu: drop determine_rate op and use CLK_ROUNDING_FW_MANAGED flag Brian Masney
2026-02-27  2:04   ` Peng Fan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox