On Mon, Mar 18, 2024 at 11:08:41AM +0000, Biju Das wrote: > The clk_disable_unprepare() doesn't guarantee that a clock is gated after > the execution as it is driver dependent. The Renesas and most of the other > platforms don't wait until clock is stopped because of performance reason. I'm not sure it's "because of performance reason". It's probably more that it's not important for functionality. > But these platforms wait while turning on the clock. > > The normal case for shutting down the clock is unbind/close/suspend or > error paths in the driver. Not waiting for the shutting down the clock > will improve the suspend time. > > But on RZ/G2L Camera Data Receiving Unit (CRU) IP, initially the vclk is > on. Before enabling link reception, we need to wait for vclk to be off > and after enabling reception, we need to turn the vlck on. Special cases "vclk" not "vlck". > like this requires a sync API for clock gating. I suppose this is fine for clocks that only have a single user, but this is highly undefined for clocks that could be shared between several different users, since it becomes racy whether another user of the clock has enabled or disabled this clock. I think this new API needs to spell it that it is not for clocks that are shared. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!