Subject: [PATCH] clk/efm32gg: fix dt init prototype

From: [email-masked] (Mike Turquette)
Date: Tue, 09 Sep 2014 13:51:07 -0700

Quoting Uwe Kleine-K?nig (2014-07-28 07:38:21)
> Since commit 54196ccbe0ba (of: consolidate linker section OF match table
> declarations) which went into 3.16-rc1 the following compiler warning is
> generated:
> 
>         In file included from drivers/clk/clk-efm32gg.c:12:0: include/linux/of.h:772:20:
>         warning: comparison of distinct pointer types lacks a cast [enabled by default]
>                 .data = (fn == (fn_type)NULL) ? fn : fn  }
>                             ^
>         include/linux/of.h:785:3: note: in expansion of macro '_OF_DECLARE'
>            _OF_DECLARE(table, name, compat, fn, of_init_fn_1)
>            ^
>         include/linux/clk-provider.h:545:42: note: in expansion of macro 'OF_DECLARE_1'
>          #define CLK_OF_DECLARE(name, compat, fn) OF_DECLARE_1(clk, name, compat, fn)
>                                                   ^
>         drivers/clk/clk-efm32gg.c:81:1: note: in expansion of macro 'CLK_OF_DECLARE'
>          CLK_OF_DECLARE(efm32ggcmu, "efm32gg,cmu", efm32gg_cmu_init);
>          ^
> 
> Fix it by making efm32gg_cmu_init return void.
> 
> Cc: Rob Herring <[email-masked]>
> Reported-by: Bryan Hundven <[email-masked]>
> Signed-off-by: Uwe Kleine-K?nig <[email-masked]>

Applied to clk-fixes.

Regards,
Mike

> ---
> Hello,
> 
> I feel a bit uneasy about not checking the return value of of_clk_add_provider.
> Should I add another warning there?
> 
> Best regards
> Uwe
> 
>  drivers/clk/clk-efm32gg.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/clk/clk-efm32gg.c b/drivers/clk/clk-efm32gg.c
> index bac2ddf49d02..73a8d0ff530c 100644
> --- a/drivers/clk/clk-efm32gg.c
> +++ b/drivers/clk/clk-efm32gg.c
> @@ -22,7 +22,7 @@ static struct clk_onecell_data clk_data = {
>         .clk_num = ARRAY_SIZE(clk),
>  };
>  
> -static int __init efm32gg_cmu_init(struct device_node *np)
> +static void __init efm32gg_cmu_init(struct device_node *np)
>  {
>         int i;
>         void __iomem *base;
> @@ -33,7 +33,7 @@ static int __init efm32gg_cmu_init(struct device_node *np)
>         base = of_iomap(np, 0);
>         if (!base) {
>                 pr_warn("Failed to map address range for efm32gg,cmu node\n");
> -               return -EADDRNOTAVAIL;
> +               return;
>         }
>  
>         clk[clk_HFXO] = clk_register_fixed_rate(NULL, "HFXO", NULL,
> @@ -76,6 +76,6 @@ static int __init efm32gg_cmu_init(struct device_node *np)
>         clk[clk_HFPERCLKDAC0] = clk_register_gate(NULL, "HFPERCLK.DAC0",
>                         "HFXO", 0, base + CMU_HFPERCLKEN0, 17, 0, NULL);
>  
> -       return of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
> +       of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
>  }
>  CLK_OF_DECLARE(efm32ggcmu, "efm32gg,cmu", efm32gg_cmu_init);
> -- 
> 2.0.0
>