* [PATCH v1 0/4] clk: meson: switch from .round_rate to .determine_rate
@ 2022-12-25 21:26 ` Martin Blumenstingl
0 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
The goal of this series is to switch the meson sub-drivers to use
clk_ops.determine_rate instead of clk_ops.round_rate. The former has
lower precision (2^31 instead of 2^32 on 32-bit systems). Also the idea
of the .determine_rate callback is that is replaces .round_rate so the
latter can be removed at some point.
No functional changes (apart from the 2^31 to 2^32 difference mentioned
bove) intended.
Martin Blumenstingl (4):
clk: meson: mpll: Switch from .round_rate to .determine_rate
clk: meson: dualdiv: switch from .round_rate to .determine_rate
clk: meson: sclk-div: switch from .round_rate to .determine_rate
clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
drivers/clk/meson/clk-cpu-dyndiv.c | 9 ++++-----
drivers/clk/meson/clk-dualdiv.c | 21 +++++++++++++--------
drivers/clk/meson/clk-mpll.c | 20 +++++++++++++-------
drivers/clk/meson/sclk-div.c | 11 ++++++-----
4 files changed, 36 insertions(+), 25 deletions(-)
--
2.39.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v1 0/4] clk: meson: switch from .round_rate to .determine_rate
@ 2022-12-25 21:26 ` Martin Blumenstingl
0 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
The goal of this series is to switch the meson sub-drivers to use
clk_ops.determine_rate instead of clk_ops.round_rate. The former has
lower precision (2^31 instead of 2^32 on 32-bit systems). Also the idea
of the .determine_rate callback is that is replaces .round_rate so the
latter can be removed at some point.
No functional changes (apart from the 2^31 to 2^32 difference mentioned
bove) intended.
Martin Blumenstingl (4):
clk: meson: mpll: Switch from .round_rate to .determine_rate
clk: meson: dualdiv: switch from .round_rate to .determine_rate
clk: meson: sclk-div: switch from .round_rate to .determine_rate
clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
drivers/clk/meson/clk-cpu-dyndiv.c | 9 ++++-----
drivers/clk/meson/clk-dualdiv.c | 21 +++++++++++++--------
drivers/clk/meson/clk-mpll.c | 20 +++++++++++++-------
drivers/clk/meson/sclk-div.c | 11 ++++++-----
4 files changed, 36 insertions(+), 25 deletions(-)
--
2.39.0
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v1 1/4] clk: meson: mpll: Switch from .round_rate to .determine_rate
2022-12-25 21:26 ` Martin Blumenstingl
@ 2022-12-25 21:26 ` Martin Blumenstingl
-1 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch clk-mpll over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/clk-mpll.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/drivers/clk/meson/clk-mpll.c b/drivers/clk/meson/clk-mpll.c
index fc9df4860872..20255e129b37 100644
--- a/drivers/clk/meson/clk-mpll.c
+++ b/drivers/clk/meson/clk-mpll.c
@@ -87,16 +87,22 @@ static unsigned long mpll_recalc_rate(struct clk_hw *hw,
return rate < 0 ? 0 : rate;
}
-static long mpll_round_rate(struct clk_hw *hw,
- unsigned long rate,
- unsigned long *parent_rate)
+static int mpll_determine_rate(struct clk_hw *hw, struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_clk_mpll_data *mpll = meson_clk_mpll_data(clk);
unsigned int sdm, n2;
+ long rate;
+
+ params_from_rate(req->rate, req->best_parent_rate, &sdm, &n2,
+ mpll->flags);
- params_from_rate(rate, *parent_rate, &sdm, &n2, mpll->flags);
- return rate_from_params(*parent_rate, sdm, n2);
+ rate = rate_from_params(req->best_parent_rate, sdm, n2);
+ if (rate < 0)
+ return rate;
+
+ req->rate = rate;
+ return 0;
}
static int mpll_set_rate(struct clk_hw *hw,
@@ -157,13 +163,13 @@ static int mpll_init(struct clk_hw *hw)
const struct clk_ops meson_clk_mpll_ro_ops = {
.recalc_rate = mpll_recalc_rate,
- .round_rate = mpll_round_rate,
+ .determine_rate = mpll_determine_rate,
};
EXPORT_SYMBOL_GPL(meson_clk_mpll_ro_ops);
const struct clk_ops meson_clk_mpll_ops = {
.recalc_rate = mpll_recalc_rate,
- .round_rate = mpll_round_rate,
+ .determine_rate = mpll_determine_rate,
.set_rate = mpll_set_rate,
.init = mpll_init,
};
--
2.39.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v1 1/4] clk: meson: mpll: Switch from .round_rate to .determine_rate
@ 2022-12-25 21:26 ` Martin Blumenstingl
0 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch clk-mpll over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/clk-mpll.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/drivers/clk/meson/clk-mpll.c b/drivers/clk/meson/clk-mpll.c
index fc9df4860872..20255e129b37 100644
--- a/drivers/clk/meson/clk-mpll.c
+++ b/drivers/clk/meson/clk-mpll.c
@@ -87,16 +87,22 @@ static unsigned long mpll_recalc_rate(struct clk_hw *hw,
return rate < 0 ? 0 : rate;
}
-static long mpll_round_rate(struct clk_hw *hw,
- unsigned long rate,
- unsigned long *parent_rate)
+static int mpll_determine_rate(struct clk_hw *hw, struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_clk_mpll_data *mpll = meson_clk_mpll_data(clk);
unsigned int sdm, n2;
+ long rate;
+
+ params_from_rate(req->rate, req->best_parent_rate, &sdm, &n2,
+ mpll->flags);
- params_from_rate(rate, *parent_rate, &sdm, &n2, mpll->flags);
- return rate_from_params(*parent_rate, sdm, n2);
+ rate = rate_from_params(req->best_parent_rate, sdm, n2);
+ if (rate < 0)
+ return rate;
+
+ req->rate = rate;
+ return 0;
}
static int mpll_set_rate(struct clk_hw *hw,
@@ -157,13 +163,13 @@ static int mpll_init(struct clk_hw *hw)
const struct clk_ops meson_clk_mpll_ro_ops = {
.recalc_rate = mpll_recalc_rate,
- .round_rate = mpll_round_rate,
+ .determine_rate = mpll_determine_rate,
};
EXPORT_SYMBOL_GPL(meson_clk_mpll_ro_ops);
const struct clk_ops meson_clk_mpll_ops = {
.recalc_rate = mpll_recalc_rate,
- .round_rate = mpll_round_rate,
+ .determine_rate = mpll_determine_rate,
.set_rate = mpll_set_rate,
.init = mpll_init,
};
--
2.39.0
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v1 2/4] clk: meson: dualdiv: switch from .round_rate to .determine_rate
2022-12-25 21:26 ` Martin Blumenstingl
@ 2022-12-25 21:26 ` Martin Blumenstingl
-1 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch clk-dualdiv over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/clk-dualdiv.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/drivers/clk/meson/clk-dualdiv.c b/drivers/clk/meson/clk-dualdiv.c
index c5ca23a5e3e8..feae49a8f6dc 100644
--- a/drivers/clk/meson/clk-dualdiv.c
+++ b/drivers/clk/meson/clk-dualdiv.c
@@ -86,18 +86,23 @@ __dualdiv_get_setting(unsigned long rate, unsigned long parent_rate,
return (struct meson_clk_dualdiv_param *)&table[best_i];
}
-static long meson_clk_dualdiv_round_rate(struct clk_hw *hw, unsigned long rate,
- unsigned long *parent_rate)
+static int meson_clk_dualdiv_determine_rate(struct clk_hw *hw,
+ struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_clk_dualdiv_data *dualdiv = meson_clk_dualdiv_data(clk);
- const struct meson_clk_dualdiv_param *setting =
- __dualdiv_get_setting(rate, *parent_rate, dualdiv);
+ const struct meson_clk_dualdiv_param *setting;
- if (!setting)
- return meson_clk_dualdiv_recalc_rate(hw, *parent_rate);
+ setting = __dualdiv_get_setting(req->rate, req->best_parent_rate,
+ dualdiv);
+ if (setting)
+ req->rate = __dualdiv_param_to_rate(req->best_parent_rate,
+ setting);
+ else
+ req->rate = meson_clk_dualdiv_recalc_rate(hw,
+ req->best_parent_rate);
- return __dualdiv_param_to_rate(*parent_rate, setting);
+ return 0;
}
static int meson_clk_dualdiv_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -122,7 +127,7 @@ static int meson_clk_dualdiv_set_rate(struct clk_hw *hw, unsigned long rate,
const struct clk_ops meson_clk_dualdiv_ops = {
.recalc_rate = meson_clk_dualdiv_recalc_rate,
- .round_rate = meson_clk_dualdiv_round_rate,
+ .determine_rate = meson_clk_dualdiv_determine_rate,
.set_rate = meson_clk_dualdiv_set_rate,
};
EXPORT_SYMBOL_GPL(meson_clk_dualdiv_ops);
--
2.39.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v1 2/4] clk: meson: dualdiv: switch from .round_rate to .determine_rate
@ 2022-12-25 21:26 ` Martin Blumenstingl
0 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch clk-dualdiv over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/clk-dualdiv.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/drivers/clk/meson/clk-dualdiv.c b/drivers/clk/meson/clk-dualdiv.c
index c5ca23a5e3e8..feae49a8f6dc 100644
--- a/drivers/clk/meson/clk-dualdiv.c
+++ b/drivers/clk/meson/clk-dualdiv.c
@@ -86,18 +86,23 @@ __dualdiv_get_setting(unsigned long rate, unsigned long parent_rate,
return (struct meson_clk_dualdiv_param *)&table[best_i];
}
-static long meson_clk_dualdiv_round_rate(struct clk_hw *hw, unsigned long rate,
- unsigned long *parent_rate)
+static int meson_clk_dualdiv_determine_rate(struct clk_hw *hw,
+ struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_clk_dualdiv_data *dualdiv = meson_clk_dualdiv_data(clk);
- const struct meson_clk_dualdiv_param *setting =
- __dualdiv_get_setting(rate, *parent_rate, dualdiv);
+ const struct meson_clk_dualdiv_param *setting;
- if (!setting)
- return meson_clk_dualdiv_recalc_rate(hw, *parent_rate);
+ setting = __dualdiv_get_setting(req->rate, req->best_parent_rate,
+ dualdiv);
+ if (setting)
+ req->rate = __dualdiv_param_to_rate(req->best_parent_rate,
+ setting);
+ else
+ req->rate = meson_clk_dualdiv_recalc_rate(hw,
+ req->best_parent_rate);
- return __dualdiv_param_to_rate(*parent_rate, setting);
+ return 0;
}
static int meson_clk_dualdiv_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -122,7 +127,7 @@ static int meson_clk_dualdiv_set_rate(struct clk_hw *hw, unsigned long rate,
const struct clk_ops meson_clk_dualdiv_ops = {
.recalc_rate = meson_clk_dualdiv_recalc_rate,
- .round_rate = meson_clk_dualdiv_round_rate,
+ .determine_rate = meson_clk_dualdiv_determine_rate,
.set_rate = meson_clk_dualdiv_set_rate,
};
EXPORT_SYMBOL_GPL(meson_clk_dualdiv_ops);
--
2.39.0
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v1 3/4] clk: meson: sclk-div: switch from .round_rate to .determine_rate
2022-12-25 21:26 ` Martin Blumenstingl
@ 2022-12-25 21:26 ` Martin Blumenstingl
-1 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch sclk-div over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/sclk-div.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/meson/sclk-div.c b/drivers/clk/meson/sclk-div.c
index 76d31c0a3342..d12c45c4c261 100644
--- a/drivers/clk/meson/sclk-div.c
+++ b/drivers/clk/meson/sclk-div.c
@@ -96,16 +96,17 @@ static int sclk_div_bestdiv(struct clk_hw *hw, unsigned long rate,
return bestdiv;
}
-static long sclk_div_round_rate(struct clk_hw *hw, unsigned long rate,
- unsigned long *prate)
+static int sclk_div_determine_rate(struct clk_hw *hw,
+ struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_sclk_div_data *sclk = meson_sclk_div_data(clk);
int div;
- div = sclk_div_bestdiv(hw, rate, prate, sclk);
+ div = sclk_div_bestdiv(hw, req->rate, &req->best_parent_rate, sclk);
+ req->rate = DIV_ROUND_UP_ULL((u64)req->best_parent_rate, div);
- return DIV_ROUND_UP_ULL((u64)*prate, div);
+ return 0;
}
static void sclk_apply_ratio(struct clk_regmap *clk,
@@ -237,7 +238,7 @@ static int sclk_div_init(struct clk_hw *hw)
const struct clk_ops meson_sclk_div_ops = {
.recalc_rate = sclk_div_recalc_rate,
- .round_rate = sclk_div_round_rate,
+ .determine_rate = sclk_div_determine_rate,
.set_rate = sclk_div_set_rate,
.enable = sclk_div_enable,
.disable = sclk_div_disable,
--
2.39.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v1 3/4] clk: meson: sclk-div: switch from .round_rate to .determine_rate
@ 2022-12-25 21:26 ` Martin Blumenstingl
0 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch sclk-div over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/sclk-div.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/meson/sclk-div.c b/drivers/clk/meson/sclk-div.c
index 76d31c0a3342..d12c45c4c261 100644
--- a/drivers/clk/meson/sclk-div.c
+++ b/drivers/clk/meson/sclk-div.c
@@ -96,16 +96,17 @@ static int sclk_div_bestdiv(struct clk_hw *hw, unsigned long rate,
return bestdiv;
}
-static long sclk_div_round_rate(struct clk_hw *hw, unsigned long rate,
- unsigned long *prate)
+static int sclk_div_determine_rate(struct clk_hw *hw,
+ struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_sclk_div_data *sclk = meson_sclk_div_data(clk);
int div;
- div = sclk_div_bestdiv(hw, rate, prate, sclk);
+ div = sclk_div_bestdiv(hw, req->rate, &req->best_parent_rate, sclk);
+ req->rate = DIV_ROUND_UP_ULL((u64)req->best_parent_rate, div);
- return DIV_ROUND_UP_ULL((u64)*prate, div);
+ return 0;
}
static void sclk_apply_ratio(struct clk_regmap *clk,
@@ -237,7 +238,7 @@ static int sclk_div_init(struct clk_hw *hw)
const struct clk_ops meson_sclk_div_ops = {
.recalc_rate = sclk_div_recalc_rate,
- .round_rate = sclk_div_round_rate,
+ .determine_rate = sclk_div_determine_rate,
.set_rate = sclk_div_set_rate,
.enable = sclk_div_enable,
.disable = sclk_div_disable,
--
2.39.0
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v1 4/4] clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
2022-12-25 21:26 ` Martin Blumenstingl
@ 2022-12-25 21:26 ` Martin Blumenstingl
-1 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch clk-cpu-dyndiv over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/clk-cpu-dyndiv.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/meson/clk-cpu-dyndiv.c b/drivers/clk/meson/clk-cpu-dyndiv.c
index 36976927fe82..8778c149d26a 100644
--- a/drivers/clk/meson/clk-cpu-dyndiv.c
+++ b/drivers/clk/meson/clk-cpu-dyndiv.c
@@ -27,14 +27,13 @@ static unsigned long meson_clk_cpu_dyndiv_recalc_rate(struct clk_hw *hw,
NULL, 0, data->div.width);
}
-static long meson_clk_cpu_dyndiv_round_rate(struct clk_hw *hw,
- unsigned long rate,
- unsigned long *prate)
+static int meson_clk_cpu_dyndiv_determine_rate(struct clk_hw *hw,
+ struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_clk_cpu_dyndiv_data *data = meson_clk_cpu_dyndiv_data(clk);
- return divider_round_rate(hw, rate, prate, NULL, data->div.width, 0);
+ return divider_determine_rate(hw, req, NULL, data->div.width, 0);
}
static int meson_clk_cpu_dyndiv_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -63,7 +62,7 @@ static int meson_clk_cpu_dyndiv_set_rate(struct clk_hw *hw, unsigned long rate,
const struct clk_ops meson_clk_cpu_dyndiv_ops = {
.recalc_rate = meson_clk_cpu_dyndiv_recalc_rate,
- .round_rate = meson_clk_cpu_dyndiv_round_rate,
+ .determine_rate = meson_clk_cpu_dyndiv_determine_rate,
.set_rate = meson_clk_cpu_dyndiv_set_rate,
};
EXPORT_SYMBOL_GPL(meson_clk_cpu_dyndiv_ops);
--
2.39.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v1 4/4] clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
@ 2022-12-25 21:26 ` Martin Blumenstingl
0 siblings, 0 replies; 14+ messages in thread
From: Martin Blumenstingl @ 2022-12-25 21:26 UTC (permalink / raw)
To: linux-amlogic; +Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
clk_ops.round_rate will be removed at some point. It's replacement is
.determine_rate. Switch clk-cpu-dyndiv over to use .determine_rate.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/clk/meson/clk-cpu-dyndiv.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/meson/clk-cpu-dyndiv.c b/drivers/clk/meson/clk-cpu-dyndiv.c
index 36976927fe82..8778c149d26a 100644
--- a/drivers/clk/meson/clk-cpu-dyndiv.c
+++ b/drivers/clk/meson/clk-cpu-dyndiv.c
@@ -27,14 +27,13 @@ static unsigned long meson_clk_cpu_dyndiv_recalc_rate(struct clk_hw *hw,
NULL, 0, data->div.width);
}
-static long meson_clk_cpu_dyndiv_round_rate(struct clk_hw *hw,
- unsigned long rate,
- unsigned long *prate)
+static int meson_clk_cpu_dyndiv_determine_rate(struct clk_hw *hw,
+ struct clk_rate_request *req)
{
struct clk_regmap *clk = to_clk_regmap(hw);
struct meson_clk_cpu_dyndiv_data *data = meson_clk_cpu_dyndiv_data(clk);
- return divider_round_rate(hw, rate, prate, NULL, data->div.width, 0);
+ return divider_determine_rate(hw, req, NULL, data->div.width, 0);
}
static int meson_clk_cpu_dyndiv_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -63,7 +62,7 @@ static int meson_clk_cpu_dyndiv_set_rate(struct clk_hw *hw, unsigned long rate,
const struct clk_ops meson_clk_cpu_dyndiv_ops = {
.recalc_rate = meson_clk_cpu_dyndiv_recalc_rate,
- .round_rate = meson_clk_cpu_dyndiv_round_rate,
+ .determine_rate = meson_clk_cpu_dyndiv_determine_rate,
.set_rate = meson_clk_cpu_dyndiv_set_rate,
};
EXPORT_SYMBOL_GPL(meson_clk_cpu_dyndiv_ops);
--
2.39.0
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v1 0/4] clk: meson: switch from .round_rate to .determine_rate
2022-12-25 21:26 ` Martin Blumenstingl
@ 2023-01-13 0:32 ` Stephen Boyd
-1 siblings, 0 replies; 14+ messages in thread
From: Stephen Boyd @ 2023-01-13 0:32 UTC (permalink / raw)
To: Martin Blumenstingl, linux-amlogic
Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
Quoting Martin Blumenstingl (2022-12-25 13:26:28)
> The goal of this series is to switch the meson sub-drivers to use
> clk_ops.determine_rate instead of clk_ops.round_rate. The former has
> lower precision (2^31 instead of 2^32 on 32-bit systems). Also the idea
> of the .determine_rate callback is that is replaces .round_rate so the
> latter can be removed at some point.
>
> No functional changes (apart from the 2^31 to 2^32 difference mentioned
> bove) intended.
>
>
> Martin Blumenstingl (4):
> clk: meson: mpll: Switch from .round_rate to .determine_rate
> clk: meson: dualdiv: switch from .round_rate to .determine_rate
> clk: meson: sclk-div: switch from .round_rate to .determine_rate
> clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
>
Acked-by: Stephen Boyd <sboyd@kernel.org>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v1 0/4] clk: meson: switch from .round_rate to .determine_rate
@ 2023-01-13 0:32 ` Stephen Boyd
0 siblings, 0 replies; 14+ messages in thread
From: Stephen Boyd @ 2023-01-13 0:32 UTC (permalink / raw)
To: Martin Blumenstingl, linux-amlogic
Cc: linux-clk, linux-kernel, jbrunet, Martin Blumenstingl
Quoting Martin Blumenstingl (2022-12-25 13:26:28)
> The goal of this series is to switch the meson sub-drivers to use
> clk_ops.determine_rate instead of clk_ops.round_rate. The former has
> lower precision (2^31 instead of 2^32 on 32-bit systems). Also the idea
> of the .determine_rate callback is that is replaces .round_rate so the
> latter can be removed at some point.
>
> No functional changes (apart from the 2^31 to 2^32 difference mentioned
> bove) intended.
>
>
> Martin Blumenstingl (4):
> clk: meson: mpll: Switch from .round_rate to .determine_rate
> clk: meson: dualdiv: switch from .round_rate to .determine_rate
> clk: meson: sclk-div: switch from .round_rate to .determine_rate
> clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
>
Acked-by: Stephen Boyd <sboyd@kernel.org>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v1 0/4] clk: meson: switch from .round_rate to .determine_rate
2022-12-25 21:26 ` Martin Blumenstingl
@ 2023-01-13 14:37 ` Jerome Brunet
-1 siblings, 0 replies; 14+ messages in thread
From: Jerome Brunet @ 2023-01-13 14:37 UTC (permalink / raw)
To: Martin Blumenstingl, linux-amlogic; +Cc: linux-clk, linux-kernel
On Sun 25 Dec 2022 at 22:26, Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote:
> The goal of this series is to switch the meson sub-drivers to use
> clk_ops.determine_rate instead of clk_ops.round_rate. The former has
> lower precision (2^31 instead of 2^32 on 32-bit systems). Also the idea
> of the .determine_rate callback is that is replaces .round_rate so the
> latter can be removed at some point.
>
> No functional changes (apart from the 2^31 to 2^32 difference mentioned
> bove) intended.
Applied. Thx Martin.
>
>
> Martin Blumenstingl (4):
> clk: meson: mpll: Switch from .round_rate to .determine_rate
> clk: meson: dualdiv: switch from .round_rate to .determine_rate
> clk: meson: sclk-div: switch from .round_rate to .determine_rate
> clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
>
> drivers/clk/meson/clk-cpu-dyndiv.c | 9 ++++-----
> drivers/clk/meson/clk-dualdiv.c | 21 +++++++++++++--------
> drivers/clk/meson/clk-mpll.c | 20 +++++++++++++-------
> drivers/clk/meson/sclk-div.c | 11 ++++++-----
> 4 files changed, 36 insertions(+), 25 deletions(-)
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v1 0/4] clk: meson: switch from .round_rate to .determine_rate
@ 2023-01-13 14:37 ` Jerome Brunet
0 siblings, 0 replies; 14+ messages in thread
From: Jerome Brunet @ 2023-01-13 14:37 UTC (permalink / raw)
To: Martin Blumenstingl, linux-amlogic; +Cc: linux-clk, linux-kernel
On Sun 25 Dec 2022 at 22:26, Martin Blumenstingl <martin.blumenstingl@googlemail.com> wrote:
> The goal of this series is to switch the meson sub-drivers to use
> clk_ops.determine_rate instead of clk_ops.round_rate. The former has
> lower precision (2^31 instead of 2^32 on 32-bit systems). Also the idea
> of the .determine_rate callback is that is replaces .round_rate so the
> latter can be removed at some point.
>
> No functional changes (apart from the 2^31 to 2^32 difference mentioned
> bove) intended.
Applied. Thx Martin.
>
>
> Martin Blumenstingl (4):
> clk: meson: mpll: Switch from .round_rate to .determine_rate
> clk: meson: dualdiv: switch from .round_rate to .determine_rate
> clk: meson: sclk-div: switch from .round_rate to .determine_rate
> clk: meson: clk-cpu-dyndiv: switch from .round_rate to .determine_rate
>
> drivers/clk/meson/clk-cpu-dyndiv.c | 9 ++++-----
> drivers/clk/meson/clk-dualdiv.c | 21 +++++++++++++--------
> drivers/clk/meson/clk-mpll.c | 20 +++++++++++++-------
> drivers/clk/meson/sclk-div.c | 11 ++++++-----
> 4 files changed, 36 insertions(+), 25 deletions(-)
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-01-13 14:53 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-25 21:26 [PATCH v1 0/4] clk: meson: switch from .round_rate to .determine_rate Martin Blumenstingl
2022-12-25 21:26 ` Martin Blumenstingl
2022-12-25 21:26 ` [PATCH v1 1/4] clk: meson: mpll: Switch " Martin Blumenstingl
2022-12-25 21:26 ` Martin Blumenstingl
2022-12-25 21:26 ` [PATCH v1 2/4] clk: meson: dualdiv: switch " Martin Blumenstingl
2022-12-25 21:26 ` Martin Blumenstingl
2022-12-25 21:26 ` [PATCH v1 3/4] clk: meson: sclk-div: " Martin Blumenstingl
2022-12-25 21:26 ` Martin Blumenstingl
2022-12-25 21:26 ` [PATCH v1 4/4] clk: meson: clk-cpu-dyndiv: " Martin Blumenstingl
2022-12-25 21:26 ` Martin Blumenstingl
2023-01-13 0:32 ` [PATCH v1 0/4] clk: meson: " Stephen Boyd
2023-01-13 0:32 ` Stephen Boyd
2023-01-13 14:37 ` Jerome Brunet
2023-01-13 14:37 ` Jerome Brunet
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.