[Freedreno] [RFC PATCH 1/2] clk: qcom: implement RCG2 'parked' clock support

Bryan O'Donoghue bryan.odonoghue at linaro.org
Wed Oct 4 12:52:13 UTC 2023


On 04/10/2023 13:08, Dmitry Baryshkov wrote:
> On Wed, 4 Oct 2023 at 12:27, Bryan O'Donoghue
> <bryan.odonoghue at linaro.org> wrote:
>>
>> On 04/10/2023 01:31, Dmitry Baryshkov wrote:
>>> clk_rcg2_shared_ops implements support for the case of the RCG which
>>> must not be completely turned off. However its design has one major
>>> drawback: it doesn't allow us to properly implement the is_enabled
>>> callback, which causes different kinds of misbehaviour from the CCF.
>>>
>>> Follow the idea behind clk_regmap_phy_mux_ops and implement the new
>>> clk_rcg2_parked_ops. It also targets the clocks which must not be fully
>>> switched off (and shared most of the implementation with
>>> clk_rcg2_shared_ops). The major difference is that it requires that the
>>> parent map doesn't conain the safe (parked) clock source. Instead if the
>>> CFG_REG register points to the safe source, the clock is considered to
>>> be disabled.
>>
>> Why not have a new bit in .flags ?
>>
>> Instead of lying about the clock being off, mark the clock as "parked",
>> or "safe parked" or whatever term we choose for it ?
> 
> The main problem with adding flags doesn't fully scale. From the CCF
> perspective, what should be the difference between parked and disabled
> clocks? How should it treat the parked one?

Exactly the same as a disabled clock, except you get a "parked" instead 
of a "disabled" when looking up its state and you don't have to

-	{ .fw_name = "bi_tcxo" },

Also you can then flag for branch2 clocks the same thing - so parking 
would be done at a higher level in the CCF.

---
bod


More information about the Freedreno mailing list