Re: [PATCH] clk: allow to skip clk_core_req_round_rate_nolock()

From: Stephen Boyd
Date: Thu Feb 22 2024 - 18:27:44 EST


Quoting Jan Dakinevich (2024-01-26 12:14:33)
> Calling of clk_core_req_round_rate_nolock() can be time-consuming in a
> case of deep hierarchy with multiple dividers/parents. But if the clock
> already has exactly the same rate as desired, there is no need to
> determine how it could be rounded.

What exactly are you trying to avoid? Is this an optimization or a bug
fix? TL;DR: I'm unlikely to apply this patch.

I could see some driver implementing round_rate()/determine_rate() in a
way that rounds the rate passed in, so that even if the rate is what the
clk is running at _right now_, it still wants to change it to something
else, or at least call down into the driver to call the set_rate clk_op.
Applying this patch will break that. The contract is that
clk_set_rate(rate) == clk_set_rate(clk_round_rate(rate)). It doesn't
look like anything needs to change.