devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@linaro.org>
To: Nishanth Menon <nm@ti.com>
Cc: linux-omap@vger.kernel.org, "Jon Hunter" <jon-hunter@ti.com>,
	"Benoît Cousson" <b-cousson@ti.com>,
	"Santosh Shilimkar" <santosh.shilimkar@ti.com>,
	"Shawn Guo" <shawn.guo@linaro.org>, Keerthy <j-keerthy@ti.com>,
	devicetree-discuss@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org, cpufreq@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH V2 8/8] cpufreq: OMAP: donot allow to be used with device tree
Date: Wed, 27 Mar 2013 11:39:09 -0700	[thread overview]
Message-ID: <87vc8c7kmq.fsf@linaro.org> (raw)
In-Reply-To: <1363715590-5131-9-git-send-email-nm@ti.com> (Nishanth Menon's message of "Tue, 19 Mar 2013 12:53:10 -0500")

Nishanth Menon <nm@ti.com> writes:

> We now use Soc generic cpufreq-cpu0 driver using DT entries.
> However to allow cpufreq-cpu0 and omap-cpufreq drivers to co-exist,
> we need to ensure the following using the same image:
> 1. With device tree boot, we use cpufreq-cpu0
> 2. With non device tree boot, we use omap-cpufreq
>
> In the case of (1), we will have cpu OPPs and regulator registered
> as part of the DT, to ensure that omap-cpufreq and cpufreq-cpu0 don't
> conflict in managing the frequency of the same cpu, we should not
> permit init to pass in omap-cpufreq.
>
> In the case of (2), we will not have the cpufreq-cpu0 device, hence
> only omap-cpufreq will be active.
>
> So, to acommodate both these usage conditions, we fail init of
> omap-cpufreq when we boot with device tree.
>
> Cc: Kevin Hilman <khilman@deeprootsystems.com>
> Cc: Jon Hunter <jon-hunter@ti.com>
> Cc: "Benoît Cousson" <b-cousson@ti.com>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: Keerthy <j-keerthy@ti.com>
> Cc: linux-omap@vger.kernel.org
> Cc: devicetree-discuss@lists.ozlabs.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: cpufreq@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
> Changes in V2:
> 	- donot remove support for omap-cpufreq in non-DT boot
> 	- little more verbose commit log
> V1: https://patchwork.kernel.org/patch/2273641/
>
>  drivers/cpufreq/omap-cpufreq.c |   14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
> index 9128c07..9382ed0 100644
> --- a/drivers/cpufreq/omap-cpufreq.c
> +++ b/drivers/cpufreq/omap-cpufreq.c
> @@ -22,6 +22,7 @@
>  #include <linux/err.h>
>  #include <linux/clk.h>
>  #include <linux/io.h>
> +#include <linux/of.h>
>  #include <linux/opp.h>
>  #include <linux/cpu.h>
>  #include <linux/module.h>
> @@ -174,6 +175,19 @@ static inline void freq_table_free(void)
>  static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
>  {
>  	int result = 0;
> +	struct device_node *np;
> +
> +	/*
> +	 * If we have a device tree node describing OPPs,
> +	 * we will NOT permit usage of omap-cpufreq driver.
> +	 * use cpufreq-cpu0 driver to manage.
> +	 */
> +	if (of_have_populated_dt()) {
> +		for_each_child_of_node(of_find_node_by_path("/cpus"), np) {
> +			if (of_get_property(np, "operating-points", NULL))
> +				return -EPERM;
> +		}
> +	}

I think it's much cleaner to just convert this to a platform_driver like
was done for the generic driver[1].  Then the registration in the
previous patch can register the omap driver when needed.

Kevin

[1] https://patchwork.kernel.org/patch/2067751/

  parent reply	other threads:[~2013-03-27 18:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-19 17:53 [PATCH V2 0/8] ARM: OMAP3+: support cpufreq-cpu0 for device tree boot Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 1/8] ARM: dts: OMAP34xx/35xx: Add CPU OPP table Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 2/8] ARM: dts: OMAP36xx: " Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 3/8] ARM: dts: OMAP3: use twl4030 vdd1 regulator for CPU Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 4/8] ARM: dts: OMAP443x: Add CPU OPP table Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 5/8] ARM: dts: omap4-panda: move generic sections to panda-common Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 6/8] ARM: dts: OMAP4460: Add CPU OPP table Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 7/8] ARM: OMAP3+: use cpu0-cpufreq driver in device tree supported boot Nishanth Menon
2013-03-19 17:53 ` [PATCH V2 8/8] cpufreq: OMAP: donot allow to be used with device tree Nishanth Menon
2013-03-20  6:17   ` Santosh Shilimkar
2013-03-27 18:39   ` Kevin Hilman [this message]
2013-03-27 20:59     ` Nishanth Menon
2013-03-27 20:37 ` [PATCH V2 0/8] ARM: OMAP3+: support cpufreq-cpu0 for device tree boot Kevin Hilman
2013-03-28 11:03 ` Benoit Cousson
2013-03-28 13:43   ` Nishanth Menon
2013-03-28 15:49     ` Benoit Cousson

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=87vc8c7kmq.fsf@linaro.org \
    --to=khilman@linaro.org \
    --cc=b-cousson@ti.com \
    --cc=cpufreq@vger.kernel.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=j-keerthy@ti.com \
    --cc=jon-hunter@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=shawn.guo@linaro.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).