HI Maciej, Just sharing a couple of fly-by ideas - please don't read too much into them.
On 19 February 2018 at 15:43, Maciej Purski <m.pur...@samsung.com> wrote: > When a driver is going to use clk_bulk_get() function, it has to > initialize an array of clk_bulk_data, by filling its id fields. > > Add a new function to the core, which dynamically allocates > clk_bulk_data array and fills its id fields. Add clk_bulk_free() > function, which frees the array allocated by clk_bulk_alloc() function. > Add a managed version of clk_bulk_alloc(). > Most places use a small fixed number of struct clk pointers. Using devres + kalloc to allocate 1-4 pointers feels a bit strange. Quick grep shows over 150 instances that could be updated to use the new API. Adding a cocci script to simplify the transition would be a good idea. > --- a/include/linux/clk.h > +++ b/include/linux/clk.h > @@ -15,6 +15,7 @@ > #include <linux/err.h> > #include <linux/kernel.h> > #include <linux/notifier.h> > +#include <linux/slab.h> > The extra header declaration should not be needed. One should be able to forward declare any undefined structs. HTH Emil