From: Arnd Bergmann <arnd@arndb.de>
To: Richard Zhao <richard.zhao@freescale.com>
Cc: Rob Herring <robherring2@gmail.com>,
Jamie Iles <jamie@jamieiles.com>,
linux@arm.linux.org.uk, mark.langsdorf@calxeda.com,
linaro-dev@lists.linaro.org, marc.zyngier@arm.com,
catalin.marinas@arm.com, devicetree-discuss@lists.ozlabs.org,
patches@linaro.org, bryanh@codeaurora.org,
cpufreq@vger.kernel.org, grant.likely@secretlab.ca,
rdunlap@xenotime.net, eric.miao@linaro.org,
kernel@pengutronix.de, davej@redhat.com, davidb@codeaurora.org,
shawn.guo@linaro.org, Richard Zhao <richard.zhao@linaro.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V3 4/7] cpufreq: add generic cpufreq driver
Date: Tue, 20 Dec 2011 15:21:37 +0000 [thread overview]
Message-ID: <201112201521.37747.arnd@arndb.de> (raw)
In-Reply-To: <20111220015934.GD15863@b20223-02.ap.freescale.net>
On Tuesday 20 December 2011, Richard Zhao wrote:
> > >>>> +Generic cpufreq driver
> > >>>> +
> > >>>> +Required properties in /cpus/cpu@0:
> > >>>> +- compatible : "generic-cpufreq"
> > >>>
> > >>> I'm not convinced this is the best way to do this. By requiring a
> > >>> generic-cpufreq compatible string we're encoding Linux driver
> > >>> information into the hardware description. The only way I can see to
> > >>> avoid this is to provide a generic_clk_cpufreq_init() function that
> > >>> platforms can call in their machine init code to use the driver.
> >
> > Agreed on the compatible string.
> Assume you reject to use compatible string.
> > It's putting Linux specifics into DT.
> >
> > You could flip this around and have the module make a call into the
> > kernel to determine whether to initialize or not. Then platforms could
> > set a flag to indicate this.
> Could you make it more clear? kernel global variable, macro, or function?
>
> - Following your idea, I think, we can add in driver/cpufreq/cpufreq.c:
> int (*clk_reg_cpufreq_get_op_table) (struct op_table *tbl, int *size);
> SoC code set the callback. If it's NULL, driver will exit. We can get rid
> of DT. It'll make cpufreq core dirty, but it's the only file built-in.
>
> - Drop module support. SoC call generic_clk_cpufreq_init as Jamie said.
I think you don't actually need a "compatible" property here, as long as we
ensure that the "cpu-freqs", "cpu-volts" and "trans-latency" properties are
present in the cpu node if and only if the machine works with this driver
(why else would you put them there?).
CPUs are special in the device trees in a number of ways, so I think we
can treat this as a logical extension. This way, you can still make the
generic cpufreq driver a loadable module. You don't get module autoloading
with this structure, but that is already the case because the cpu nodes
in the device tree are not translated into linux devices.
Arnd
next prev parent reply other threads:[~2011-12-20 15:21 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-19 3:21 [PATCH V3 0/7] add a generic cpufreq driver Richard Zhao
2011-12-19 3:21 ` [PATCH V3 1/7] ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp Richard Zhao
2011-12-21 14:21 ` Richard Zhao
2011-12-19 3:21 ` [PATCH V3 2/7] arm/imx: cpufreq: remove loops_per_jiffy recalculate " Richard Zhao
2011-12-19 3:21 ` [PATCH V3 3/7] cpufreq: OMAP: " Richard Zhao
2011-12-19 3:21 ` [PATCH V3 4/7] cpufreq: add generic cpufreq driver Richard Zhao
2011-12-19 10:05 ` Jamie Iles
2011-12-19 14:19 ` Richard Zhao
2011-12-19 14:39 ` Jamie Iles
2011-12-19 15:00 ` Rob Herring
2011-12-20 1:59 ` Richard Zhao
2011-12-20 15:13 ` Rob Herring
[not found] ` <4EF0A612.2060400-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-12-20 22:16 ` Richard Zhao
2011-12-20 15:21 ` Arnd Bergmann [this message]
[not found] ` <201112201521.37747.arnd-r2nGTMty4D4@public.gmane.org>
2011-12-20 21:57 ` Richard Zhao
2011-12-20 14:59 ` Mark Brown
2011-12-20 23:27 ` Richard Zhao
2011-12-20 23:48 ` Mark Brown
2011-12-21 1:20 ` Richard Zhao
2011-12-21 1:32 ` Mark Brown
2011-12-21 2:24 ` Richard Zhao
[not found] ` <20111221022452.GF15863-iWYTGMXpHj9ITqJhDdzsOjpauB2SiJktrE5yTffgRl4@public.gmane.org>
2011-12-21 2:33 ` Mark Brown
2011-12-21 2:51 ` Richard Zhao
2011-12-21 9:27 ` Richard Zhao
2011-12-21 9:43 ` Arnd Bergmann
2011-12-21 11:44 ` Kay Sievers
2011-12-21 12:12 ` Mark Brown
2011-12-21 12:49 ` Kay Sievers
2011-12-21 14:19 ` Richard Zhao
2011-12-22 0:50 ` Mark Brown
2011-12-21 12:11 ` Mark Brown
2011-12-19 3:21 ` [PATCH V3 5/7] dts/imx6q: add cpufreq property Richard Zhao
2011-12-19 3:21 ` [PATCH V3 6/7] arm/imx6q: register arm_clk as cpu to clkdev Richard Zhao
2011-12-19 3:21 ` [PATCH V3 7/7] arm/imx6q: select ARCH_HAS_CPUFREQ Richard Zhao
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=201112201521.37747.arnd@arndb.de \
--to=arnd@arndb.de \
--cc=bryanh@codeaurora.org \
--cc=catalin.marinas@arm.com \
--cc=cpufreq@vger.kernel.org \
--cc=davej@redhat.com \
--cc=davidb@codeaurora.org \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=eric.miao@linaro.org \
--cc=grant.likely@secretlab.ca \
--cc=jamie@jamieiles.com \
--cc=kernel@pengutronix.de \
--cc=linaro-dev@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux@arm.linux.org.uk \
--cc=marc.zyngier@arm.com \
--cc=mark.langsdorf@calxeda.com \
--cc=patches@linaro.org \
--cc=rdunlap@xenotime.net \
--cc=richard.zhao@freescale.com \
--cc=richard.zhao@linaro.org \
--cc=robherring2@gmail.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).