On Mon, Aug 02, 2021 at 05:27:55PM +0200, Uwe Kleine-König wrote: > Hello Russell, > > On Mon, Aug 02, 2021 at 10:48:10AM +0100, Russell King (Oracle) wrote: > > I think devm_clk_get() should not be part of CCF but should be > > part of the interface level - it's silly to have devm_clk_get() > > being CCF but not clk_get(). The same should go for the other > > devm wrappers around the plain clk_* interfaces. > > What is the practical difference between "Function X is part of CCF" and > "Function X is part of the clk interface and there is only CCF who > implements it"? clkdev is maintained by me as part of the API, and provides clk_get() functionality for all clk implementations. To then have devm_clk_get(), which merely provides a wrapper around clk_get() adding the devm semantics being part of CCF is not sane - devm_clk_get() isn't specific to CCF or in fact any clk API implementation. > > There have been several different approaches to wrapping things up, > > but here's a question: should we make it easier to do the lazy thing > > (get+enable) or should we make it easier to be power efficient? > > Shouldn't we be encouraging people to write power efficient drivers? > > Yeah, sounds compelling, but I wonder if that's of practical importance. > How many driver authors do you expect to lure into making a better > driver just because devm_clk_get_prepared() doesn't exist? In contrast: > How many drivers become simpler with devm_clk_get_prepared() and so > it becomes easier to maintain them and easier to spot bugs? > In the absence of devm_clk_get_prepared(), is it better that several > frameworks (or drivers) open code it? It probably depends on where you stand on power management and power efficiency issues. Personally, I would like to see more effort put into drivers to make them more power efficient, and I believe in the coming years, power efficiency is going to become a big issue. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!