On Thu Sep 10, 2026 at 9:31 PM +08, Yao Zi wrote: > On Wed, Sep 09, 2026 at 10:07:04PM +0800, Troy Mitchell wrote: >> CLK_SET_RATE_GATE only protects clocks prepared through CCF. A PLL left >> running by firmware can have a zero prepare count, so this flag alone >> cannot prevent set_rate() from reprogramming a live PLL. > > Would it be a better idea to simply turn off the PLL before reprogramming, > since protected by CLK_SET_RATE_GATE, re-programming never happens when > the PLL is required by downstream? This also seems to be simpler. Then assigned-clock-rates on the PLL provider node? I tested this on K3: .set_rate() was called during provider registration, with PLL3's prepare count still zero while the CPUs were running on it. Disabling PLL3 hung the board. CLK_SET_RATE_GATE therefore does not protect users that CCF has not yet accounted for. -- Troy Mitchell