linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: mturquette@linaro.org (Mike Turquette)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] clk: add clk_ignore_unused option to keep boot clocks on
Date: Sat, 27 Apr 2013 23:06:57 -0700	[thread overview]
Message-ID: <20130428060657.8923.73952@quantum> (raw)
In-Reply-To: <20130427211018.GA9376@quad.lixom.net>

Quoting Olof Johansson (2013-04-27 14:10:18)
> This is primarily useful when there's a driver that doesn't claim clocks
> properly, but the bootloader leaves them on. 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@lixom.net>

Thanks for the respin.  I had to fix up a trivial merge issue with
Documentation/kernel-parameters.txt, but no big deal.  Patch is merged
into clk-next.

Regards,
Mike

> ---
>  Documentation/clk.txt               | 11 +++++++++++
>  Documentation/kernel-parameters.txt |  8 ++++++++
>  drivers/clk/clk.c                   | 13 +++++++++++++
>  3 files changed, 32 insertions(+)
> 
> diff --git a/Documentation/clk.txt b/Documentation/clk.txt
> index 4274a54..b9911c2 100644
> --- a/Documentation/clk.txt
> +++ b/Documentation/clk.txt
> @@ -231,3 +231,14 @@ To better enforce this policy, always follow this simple rule: any
>  statically initialized clock data MUST be defined in a separate file
>  from the logic that implements its ops.  Basically separate the logic
>  from the data and all is well.
> +
> +       Part 6 - Disabling clock gating of unused clocks
> +
> +Sometimes during development it can be useful to be able to bypass the
> +default disabling of unused clocks. For example, if drivers aren't enabling
> +clocks properly but rely on them being on from the bootloader, bypassing
> +the disabling means that the driver will remain functional while the issues
> +are sorted out.
> +
> +To bypass this disabling, include "clk_ignore_unused" in the bootargs to the
> +kernel.
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index c4fa000..c3bfacb 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -44,6 +44,7 @@ parameter is applicable:
>         AVR32   AVR32 architecture is enabled.
>         AX25    Appropriate AX.25 support is enabled.
>         BLACKFIN Blackfin architecture is enabled.
> +       CLK     Common clock infrastructure is enabled.
>         CMA     Contiguous Memory Area support is enabled.
>         DRM     Direct Rendering Management support is enabled.
>         DYNAMIC_DEBUG Build in debug messages and enable them at runtime
> @@ -473,6 +474,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
>  
>         cio_ignore=     [S390]
>                         See Documentation/s390/CommonIO for details.
> +       clk_ignore_unused
> +                       [CLK]
> +                       Keep all clocks already enabled by bootloader on,
> +                       even if no driver has claimed them. This is useful
> +                       for debug and development, but should not be
> +                       needed on a platform with proper driver support.
> +                       For more information, see Documentation/clk.txt.
>  
>         clock=          [BUGS=X86-32, HW] gettimeofday clocksource override.
>                         [Deprecated]
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index 20ce67f..934cfd1 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -499,10 +499,23 @@ out:
>         return;
>  }
>  
> +static bool clk_ignore_unused;
> +static int __init clk_ignore_unused_setup(char *__unused)
> +{
> +       clk_ignore_unused = true;
> +       return 1;
> +}
> +__setup("clk_ignore_unused", clk_ignore_unused_setup);
> +
>  static int clk_disable_unused(void)
>  {
>         struct clk *clk;
>  
> +       if (clk_ignore_unused) {
> +               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

      reply	other threads:[~2013-04-28  6:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-26 23:39 [PATCH] clk: add option to keep boot clocks on Olof Johansson
2013-04-27  0:08 ` Randy Dunlap
2013-04-27  0:22   ` Olof Johansson
2013-04-27 18:17 ` Mike Turquette
2013-04-27 21:07   ` Olof Johansson
2013-04-27 21:10 ` [PATCH v2] clk: add clk_ignore_unused " Olof Johansson
2013-04-28  6:06   ` Mike Turquette [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130428060657.8923.73952@quantum \
    --to=mturquette@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).