[PATCH] clk: add option to keep boot clocks on

Mike Turquette mturquette at linaro.org
Sat Apr 27 14:17:13 EDT 2013


Quoting Olof Johansson (2013-04-26 16:39:51)
> This is primarily useful when there's a driver that doesn't claim clocks
> properly, but the bootloader does. It's not expected to be used in normal
> cases, but for bringup and debug it's very useful to have the option to
> not gate unclaimed clocks that are still on.
> 
> Signed-off-by: Olof Johansson <olof at lixom.net>
> ---
> 
> Mike, this is a pretty trivial patch that I would love to see in 3.10
> even though it's getting late. I'm definitely not picky about the naming
> of the boot option, so feel free to change it.
> 

This bike shed could be improved with a different color of paint.
Opinions below:

> 
> -Olof
> 
>  drivers/clk/clk.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 20ce67f..b22551e 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -499,10 +499,24 @@ out:
>         return;
>  }
>  
> +

Remove extra whitespace.

> +static bool keep_boot_clocks;
> +static int __init clk_keep_boot_clocks(char *__unused)
> +{
> +       keep_boot_clocks = true;
> +       return 1;
> +}
> +__setup("clk_keep_boot_clocks", clk_keep_boot_clocks);

s/clk_keep_boot_clocks/clk_ignore_unused/

This matches nicely with the existing CLK_IGNORE_UNUSED flag in
include/linux/clk-provider.h

In addition to Randy's suggestion to update kernel-parameters.txt,
please also toss in a note somewhere in Documentation/clk.txt so that
others bringing up new platforms can more easily find out about this
boot option.  Don't worry about making it pretty since I plan to rework
the clock documentation for 3.11.

Otherwise patch looks good to me.  I did some testing and I would be
comfortable sneaking this in for 3.10.

Regards,
Mike

> +
>  static int clk_disable_unused(void)
>  {
>         struct clk *clk;
>  
> +       if (keep_boot_clocks) {
> +               pr_warn("clk: Not disabling unused clocks\n");
> +               return 0;
> +       }
> +
>         clk_prepare_lock();
>  
>         hlist_for_each_entry(clk, &clk_root_list, child_node)
> -- 
> 1.8.1.192.gc4361b8



More information about the linux-arm-kernel mailing list