[GIT PULL] sirf clk update for 3.16

Mike Turquette mturquette at linaro.org
Mon Jun 2 15:10:01 PDT 2014


Quoting Barry Song (2014-05-18 05:50:40)
> 2014-05-15 14:01 GMT+08:00 Mike Turquette <mturquette at linaro.org>:
> > Quoting Barry Song (2014-05-12 07:45:00)
> >> Hi Mike,
> >>
> >> can you pull the below update for 3.16? it cleanups the sirf clk codes
> >> to fix some minor checkpatch issues according to key customer's
> >> requirement.
> >>
> >>
> >> The following changes since commit c9eaa447e77efe77b7fa4c953bd62de8297fd6c5:
> >>
> >>   Linux 3.15-rc1 (2014-04-13 14:18:35 -0700)
> >>
> >> are available in the git repository at:
> >>
> >>   git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git
> >> tags/clk-sirf-for-3.16
> >
> > Hi Barry,
> >
> > I get the following warnings when pulling this tag onto the clk-next
> > branch:
> >
> > In file included from drivers/clk/sirf/clk-prima2.c:20:0:
> > drivers/clk/sirf/clk-common.c:199:2: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]
> >   .parent_names = pll_clk_parents,
> >   ^
> >   ... repeats a for every .parent_names instance ...
> >
> > In file included from drivers/clk/sirf/clk-atlas6.c:20:0:
> > drivers/clk/sirf/clk-common.c:199:2: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]
> >   .parent_names = pll_clk_parents,
> >   ^
> >   ... repeats a for every .parent_names instance ...
> >
> > Can you fix up and resubmit?
> >
> 
> hi Mike,
> this might mean we need a fix in clk core. we moved to "const char *
> const" for clk parents
> by:
> 137 -static const char *pll_clk_parents[] = {
> 138 +static const char * const pll_clk_parents[] = {
> ...
> repeated for every clk_parent.
> ...
> 
> to fix checkpatch issues like:
> #287: FILE: clk-common.c:287:
> +static const char *dmn_clk_parents[] = {
> 
> WARNING: static const char * array should probably be static const char * const
> 
> but in clk_init_data, parent_names are "const char **"
> const char              **parent_names;
> 
> if we don't change the parent_names of clk_init_data structure, the
> only thing we can do to fix "warning: initialization discards ‘const’
> qualifier from pointer target type" is doing things like:
> 
>  static struct clk_init_data clk_spi1_init = {
>         .name = "spi1",
>         .ops = &ios_ops,
> -       .parent_names = std_clk_io_parents,
> +       .parent_names = (const char **)std_clk_io_parents,
>         .num_parents = ARRAY_SIZE(std_clk_io_parents),
>  };
> 
> but this looks not too right. what is your opinion? i want to send a
> fix for this issue by:
> 
> commit ef10a461aaa5db647a5e8d4d1f43659bab2ae9e1
> Author: Barry Song <Baohua.Song at csr.com>
> Date:   Sun May 18 20:47:29 2014 +0800
> 
>     clk: move parent_names of clk_init_data to "const char * const *"
> 
>     Signed-off-by: Barry Song ...
> 
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index 5119174..f919806 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -188,7 +188,7 @@ struct clk_ops {
>  struct clk_init_data {
>         const char              *name;
>         const struct clk_ops    *ops;
> -       const char              **parent_names;
> +       const char * const      *parent_names;

Such a fix throws the following warning:

| drivers/clk/clk.c: In function ‘__clk_register’:
drivers/clk/clk.c|1966 col 20| warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
||   clk->parent_names = hw->init->parent_names;
||                     ^

I haven't really taken the time to think about this one. Feel free to
submit a fix, otherwise I'll take a good look at it after 3.16-rc1.

Regards,
Mike

>         u8                      num_parents;
>         unsigned long           flags;
>  };
> 
> 
> > Regards,
> > Mike
> >
> 
> -barry



More information about the linux-arm-kernel mailing list