Hi Stephen, > -----Original Message----- > From: Stephen Boyd [mailto:sboyd@xxxxxxxxxx] > Sent: Saturday, March 24, 2018 12:53 AM > To: A.s. Dong <aisheng.dong@xxxxxxx>; linux-clk@xxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; > mturquette@xxxxxxxxxxxx; hdegoede@xxxxxxxxxx; > b.zolnierkie@xxxxxxxxxxx; linux@xxxxxxxxxxxxxxx; linux- > fbdev@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>; A.s. Dong > <aisheng.dong@xxxxxxx>; Stephen Boyd <sboyd@xxxxxxxxxxxxxx>; Russell > King <linux@xxxxxxxxxxxxxxxx> > Subject: Re: [PATCH V2 1/4] clk: bulk: add of_clk_bulk_get() > > Quoting Dong Aisheng (2018-03-20 20:19:48) > > diff --git a/drivers/clk/clk-bulk.c b/drivers/clk/clk-bulk.c index > > 4c10456..4b357b2 100644 > > --- a/drivers/clk/clk-bulk.c > > +++ b/drivers/clk/clk-bulk.c > > @@ -19,6 +19,38 @@ > > #include <linux/clk.h> > > #include <linux/device.h> > > #include <linux/export.h> > > +#include <linux/of.h> > > + > > +#if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK) > > Do we need these defines? of_clk_get() is a stub function when these > configs are false. > You're right. Will drop it. > > +static int __must_check of_clk_bulk_get(struct device_node *np, int > num_clks, > > + struct clk_bulk_data *clks) { > > + int ret; > > + int i; > > + > > + for (i = 0; i < num_clks; i++) > > + clks[i].clk = NULL; > > + > > + for (i = 0; i < num_clks; i++) { > > + clks[i].clk = of_clk_get(np, i); > > + if (IS_ERR(clks[i].clk)) { > > + ret = PTR_ERR(clks[i].clk); > > + pr_err("%pOF: Failed to get clk index: %d ret: %d\n", > > + np, i, ret); > > + clks[i].clk = NULL; > > + goto err; > > + } > > + } > > + > > + return 0; > > + > > +err: > > + clk_bulk_put(i, clks); > > + > > + return ret; > > +} > > +EXPORT_SYMBOL(of_clk_bulk_get); > > It's static, so don't export it. Got it. Sorry for such mistake. Will fix and sent V3. Regards Dong Aisheng ��.n��������+%������w��{.n�����{����n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�