Re: [PATCH V3 1/1] clk: bulk: add of_clk_bulk_get()
On Sun, Sep 24, 2017 at 4:06 AM, kbuild test robot wrote: > [auto build test ERROR on clk/clk-next] > [also build test ERROR on v4.14-rc1 next-20170922] > [if your patch is applied to the wrong git tree, please drop us a note to > help improve the system] > > url: > https://github.com/0day-ci/linux/commits/Dong-Aisheng/clk-bulk-add-of_clk_bulk_get/20170921-203645 > base: https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next > config: sh-apsh4a3a_defconfig (attached as .config) > compiler: sh4-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 > reproduce: > wget > https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O > ~/bin/make.cross > chmod +x ~/bin/make.cross > # save the attached .config to linux build tree > make.cross ARCH=sh > > All errors (new ones prefixed by >>): > >In file included from arch/sh/kernel/setup.c:28:0: >>> include/linux/clk.h:689:12: error: 'of_clk_bulk_get' defined but not used >>> [-Werror=unused-function] > static int of_clk_bulk_get(struct device_node *np, int num_clks, >^~~ >cc1: all warnings being treated as errors > > vim +/of_clk_bulk_get +689 include/linux/clk.h > >681 >682 #if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK) >683 int __must_check of_clk_bulk_get(struct device_node *np, int num_clks, >684 struct clk_bulk_data *clks); >685 struct clk *of_clk_get(struct device_node *np, int index); >686 struct clk *of_clk_get_by_name(struct device_node *np, const char > *name); >687 struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec); >688 #else > > 689 static int of_clk_bulk_get(struct device_node *np, int num_clks, static inline >690 struct clk_bulk_data *clks) >691 { >692 return -ENOENT; >693 } >694 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Re: [PATCH V3 1/1] clk: bulk: add of_clk_bulk_get()
Hi Dong, [auto build test ERROR on clk/clk-next] [also build test ERROR on v4.14-rc1 next-20170922] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Dong-Aisheng/clk-bulk-add-of_clk_bulk_get/20170921-203645 base: https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next config: sh-apsh4a3a_defconfig (attached as .config) compiler: sh4-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=sh All errors (new ones prefixed by >>): In file included from arch/sh/kernel/setup.c:28:0: >> include/linux/clk.h:689:12: error: 'of_clk_bulk_get' defined but not used >> [-Werror=unused-function] static int of_clk_bulk_get(struct device_node *np, int num_clks, ^~~ cc1: all warnings being treated as errors vim +/of_clk_bulk_get +689 include/linux/clk.h 681 682 #if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK) 683 int __must_check of_clk_bulk_get(struct device_node *np, int num_clks, 684 struct clk_bulk_data *clks); 685 struct clk *of_clk_get(struct device_node *np, int index); 686 struct clk *of_clk_get_by_name(struct device_node *np, const char *name); 687 struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec); 688 #else > 689 static int of_clk_bulk_get(struct device_node *np, int num_clks, 690 struct clk_bulk_data *clks) 691 { 692 return -ENOENT; 693 } 694 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip
[PATCH V3 1/1] clk: bulk: add of_clk_bulk_get()
'clock-names' property is optinal in DT, so of_clk_bulk_get() is introduced here to handle this for DT users without 'clock-names' specified. Cc: Stephen Boyd Cc: Michael Turquette Cc: Russell King Reported-by: Shawn Guo Signed-off-by: Dong Aisheng --- Changes since v2: * of_clk_bulk_get should return -ENOENT; Changes since v1: * using %pOF instead of full_name --- drivers/clk/clk-bulk.c | 31 +++ include/linux/clk.h| 8 2 files changed, 39 insertions(+) diff --git a/drivers/clk/clk-bulk.c b/drivers/clk/clk-bulk.c index c834f5a..896aa3b 100644 --- a/drivers/clk/clk-bulk.c +++ b/drivers/clk/clk-bulk.c @@ -19,6 +19,37 @@ #include #include #include +#include + +#if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK) +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; +} +#endif void clk_bulk_put(int num_clks, struct clk_bulk_data *clks) { diff --git a/include/linux/clk.h b/include/linux/clk.h index 12c96d9..a1f1f05 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -680,10 +680,18 @@ static inline void clk_bulk_disable_unprepare(int num_clks, } #if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK) +int __must_check of_clk_bulk_get(struct device_node *np, int num_clks, +struct clk_bulk_data *clks); struct clk *of_clk_get(struct device_node *np, int index); struct clk *of_clk_get_by_name(struct device_node *np, const char *name); struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec); #else +static int of_clk_bulk_get(struct device_node *np, int num_clks, + struct clk_bulk_data *clks) +{ + return -ENOENT; +} + static inline struct clk *of_clk_get(struct device_node *np, int index) { return ERR_PTR(-ENOENT); -- 2.7.4