On Fri, Feb 16, 2024 at 05:01:47PM +0530, Manivannan Sadhasivam wrote: > On Tue, Feb 13, 2024 at 06:57:50PM +0530, Shradha Todi wrote: > > Provide a managed devm_clk_bulk* wrapper to get and enable all > > bulk clocks in order to simplify drivers that keeps all clocks > > enabled for the time of driver operation. > > > > Suggested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > > Reviewed-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx> > > Signed-off-by: Shradha Todi <shradha.t@xxxxxxxxxxx> > > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> > > - Mani > > > --- > > drivers/clk/clk-devres.c | 40 ++++++++++++++++++++++++++++++++++++++++ > > include/linux/clk.h | 23 +++++++++++++++++++++++ > > 2 files changed, 63 insertions(+) > > [...] > > diff --git a/include/linux/clk.h b/include/linux/clk.h > > index 1ef013324237..85a9330d5a5a 100644 > > --- a/include/linux/clk.h > > +++ b/include/linux/clk.h > > @@ -438,6 +438,22 @@ int __must_check devm_clk_bulk_get_optional(struct device *dev, int num_clks, > > int __must_check devm_clk_bulk_get_all(struct device *dev, > > struct clk_bulk_data **clks); > > > > +/** > > + * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed) > > + * @dev: device for clock "consumer" > > + * @clks: pointer to the clk_bulk_data table of consumer > > + * > > + * Returns success (0) or negative errno. > > + * > > + * This helper function allows drivers to get all clocks of the > > + * consumer and enables them in one operation with management. > > + * The clks will automatically be disabled and freed when the device > > + * is unbound. > > + */ > > + > > +int __must_check devm_clk_bulk_get_all_enable(struct device *dev, > > + struct clk_bulk_data **clks); > > + > > /** > > * devm_clk_get - lookup and obtain a managed reference to a clock producer. > > * @dev: device for clock "consumer" > > @@ -960,6 +976,13 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev, > > return 0; > > } > > > > +static inline int __must_check devm_clk_bulk_get_all_enable(struct device *dev, > > + struct clk_bulk_data **clks) > > +{ > > + Just noticed this extra newline after sending my r-b tag. Please remove it in next iteration. - Mani -- மணிவண்ணன் சதாசிவம்