Re: [PATCH] clk: ti: clk-sci: Notify AVS driver based upon clock rate

2023-10-12 Thread Tom Rini
On Thu, Sep 21, 2023 at 10:33:43PM +0530, Udit Kumar wrote:

> AVS driver needs to be notified before or after clock change,
> depending upon new rate is greater or less than current clock rate.
> 
> Fixes: 1e0aa873bc7cd ("clk: clk-ti-sci: Notify AVS driver upon setting clock 
> rate")
> 
> Cc: Keerthy 
> Signed-off-by: Udit Kumar 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature


[PATCH] clk: ti: clk-sci: Notify AVS driver based upon clock rate

2023-09-21 Thread Udit Kumar
AVS driver needs to be notified before or after clock change,
depending upon new rate is greater or less than current clock rate.

Fixes: 1e0aa873bc7cd ("clk: clk-ti-sci: Notify AVS driver upon setting clock 
rate")

Cc: Keerthy 
Signed-off-by: Udit Kumar 
---
Boot logs
https://gist.github.com/uditkumarti/5a05f9b18b8e5bc347ef98c901cc13d4

Separate patch for clk-sci driver to handle AVS,
as per review feedback in
https://lore.kernel.org/all/20230920120256.2901860-1-u-kum...@ti.com/

 drivers/clk/ti/clk-sci.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/ti/clk-sci.c b/drivers/clk/ti/clk-sci.c
index 74df5a397b..8fc3254c99 100644
--- a/drivers/clk/ti/clk-sci.c
+++ b/drivers/clk/ti/clk-sci.c
@@ -91,12 +91,12 @@ static ulong ti_sci_clk_set_rate(struct clk *clk, ulong 
rate)
const struct ti_sci_handle *sci = data->sci;
const struct ti_sci_clk_ops *cops = &sci->ops.clk_ops;
int ret;
+   int freq_scale_up = rate >= ti_sci_clk_get_rate(clk) ? 1 : 0;
 
debug("%s(clk=%p, rate=%lu)\n", __func__, clk, rate);
 
-#ifdef CONFIG_K3_AVS0
-   k3_avs_notify_freq(clk->id, clk->data, rate);
-#endif
+   if (IS_ENABLED(CONFIG_K3_AVS0) && freq_scale_up)
+   k3_avs_notify_freq(clk->id, clk->data, rate);
 
ret = cops->set_freq(sci, clk->id, clk->data, 0, rate, ULONG_MAX);
if (ret) {
@@ -104,6 +104,9 @@ static ulong ti_sci_clk_set_rate(struct clk *clk, ulong 
rate)
return ret;
}
 
+   if (IS_ENABLED(CONFIG_K3_AVS0) && !freq_scale_up)
+   k3_avs_notify_freq(clk->id, clk->data, rate);
+
return rate;
 }
 
-- 
2.34.1