Hi Stephen, Stephen Boyd <sb...@kernel.org> wrote on Tue, 11 Dec 2018 09:12:55 -0800:
> Sorry, I'm not reviewing the whole patch right now, just this one little > bit because I'm also working in the same area. > > Quoting Miquel Raynal (2018-12-04 11:24:38) > > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h > > index 60c51871b04b..721d6b55b2fa 100644 > > --- a/include/linux/clk-provider.h > > +++ b/include/linux/clk-provider.h > > @@ -781,6 +781,8 @@ void devm_clk_hw_unregister(struct device *dev, struct > > clk_hw *hw); > > const char *__clk_get_name(const struct clk *clk); > > const char *clk_hw_get_name(const struct clk_hw *hw); > > struct clk_hw *__clk_get_hw(struct clk *clk); > > +void clk_link_consumer(struct device *consumer, struct clk *clk); > > +void clk_unlink_consumer(struct clk *clk); > > We shouldn't need to add these functions as far as I can tell. That's > because __clk_get() has become an internal API between clkdev.c and > clk.c that does nothing now on implementations that aren't the CCF. We > can even change this API to take a clk_hw pointer instead of a clk > pointer. > > I'd rather see us plumb a struct device and clk_hw structure down into > __clk_get() and fold it all into __clk_create_clk, possibly even > renaming __clk_create_clk to clk_hw_create_clk(). That way we can get > the calling device and clk_hw pointer in one call in the clk framework, > along with the device name and connection name, and then generate the > struct clk right there. This can simplify some code and make it easier > to extend this to associate calling devices with the clk consumer > somehow. > > Here's the diff. With this, you should be able to add and remove device > links in clk_hw_create_clk() when dev != NULL. Thanks for the pointers, if you think we should modify the API then it's fine by me, I will integrate your diff and try to propose something in sync with your comments this week. Thanks, Miquèl