All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: rjw@sisk.pl, swarren@nvidia.com, linaro-kernel@lists.linaro.org,
	patches@linaro.org, cpufreq@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	mturquette@linaro.org, linux-arm-kernel@lists.infradead.org,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Ian Campbell <ian.campbell@citrix.com>,
	Mark Rutland <Mark.Rutland@arm.com>,
	Pawel Moll <pawel.moll@arm.com>,
	Rob Herring <rob.herring@calxeda.com>
Subject: Re: [PATCH 2/6] ARM: Tegra: Add CPU's OPPs for using cpufreq-cpu0 driver
Date: Wed, 07 Aug 2013 11:42:49 -0600	[thread overview]
Message-ID: <52028719.8070908@wwwdotorg.org> (raw)
In-Reply-To: <d4cd498d9b63d761039b025216e65278dc8e0e37.1375886595.git.viresh.kumar@linaro.org>

On 08/07/2013 08:46 AM, Viresh Kumar wrote:
> cpufreq-cpu0 driver needs OPPs to be present in DT which can be probed by it to
> get frequency table. This patch adds OPPs and clock-latency to tegra cpu0 node
> for multiple SoCs.
> 
> Voltage levels aren't used until now for tegra and so a flat value which would
> eventually be ignored is used to represent voltage.

This patch is problematic w.r.t. DT being an ABI.

We can certainly add new optional properties to a DT binding that enable
new features. However, a new version of a binding can't require new
properties to exist that didn't before, since that means that old DTs
won't work with new kernels that require the new properties.

As such, I believe we do need some Tegra-specific piece of code that
defines these OPP tables in the kernel, so that the operating-points
property is not needed.

Similarly, we can't put invalid voltages into the DT, since if a later
kernel version starts actually using that field, the HW will no longer
work correctly. Unless perhaps we put 0 into the DT and make the binding
define that 0 means "you can't change the voltage at all away from the
boot value"?

Is the operating-points property documented in
Documentation/devicetree/bindings/ somewhere?

(Also Cc'ing the DT mailing list and maintainers)

> diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi
> index abf6c40..730e0d9 100644
> --- a/arch/arm/boot/dts/tegra114.dtsi
> +++ b/arch/arm/boot/dts/tegra114.dtsi
> @@ -438,6 +438,18 @@
>  			device_type = "cpu";
>  			compatible = "arm,cortex-a15";
>  			reg = <0>;
> +			operating-points = <
> +				/* kHz    ignored */
> +				 216000   1000000
> +				 312000   1000000
> +				 456000   1000000
> +				 608000   1000000
> +				 760000   1000000
> +				 816000   1000000
> +				 912000   1000000
> +				 1000000  1000000
> +			>;
> +			clock-latency = <300000>;
>  		};


WARNING: multiple messages have this Message-ID (diff)
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/6] ARM: Tegra: Add CPU's OPPs for using cpufreq-cpu0 driver
Date: Wed, 07 Aug 2013 11:42:49 -0600	[thread overview]
Message-ID: <52028719.8070908@wwwdotorg.org> (raw)
In-Reply-To: <d4cd498d9b63d761039b025216e65278dc8e0e37.1375886595.git.viresh.kumar@linaro.org>

On 08/07/2013 08:46 AM, Viresh Kumar wrote:
> cpufreq-cpu0 driver needs OPPs to be present in DT which can be probed by it to
> get frequency table. This patch adds OPPs and clock-latency to tegra cpu0 node
> for multiple SoCs.
> 
> Voltage levels aren't used until now for tegra and so a flat value which would
> eventually be ignored is used to represent voltage.

This patch is problematic w.r.t. DT being an ABI.

We can certainly add new optional properties to a DT binding that enable
new features. However, a new version of a binding can't require new
properties to exist that didn't before, since that means that old DTs
won't work with new kernels that require the new properties.

As such, I believe we do need some Tegra-specific piece of code that
defines these OPP tables in the kernel, so that the operating-points
property is not needed.

Similarly, we can't put invalid voltages into the DT, since if a later
kernel version starts actually using that field, the HW will no longer
work correctly. Unless perhaps we put 0 into the DT and make the binding
define that 0 means "you can't change the voltage at all away from the
boot value"?

Is the operating-points property documented in
Documentation/devicetree/bindings/ somewhere?

(Also Cc'ing the DT mailing list and maintainers)

> diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi
> index abf6c40..730e0d9 100644
> --- a/arch/arm/boot/dts/tegra114.dtsi
> +++ b/arch/arm/boot/dts/tegra114.dtsi
> @@ -438,6 +438,18 @@
>  			device_type = "cpu";
>  			compatible = "arm,cortex-a15";
>  			reg = <0>;
> +			operating-points = <
> +				/* kHz    ignored */
> +				 216000   1000000
> +				 312000   1000000
> +				 456000   1000000
> +				 608000   1000000
> +				 760000   1000000
> +				 816000   1000000
> +				 912000   1000000
> +				 1000000  1000000
> +			>;
> +			clock-latency = <300000>;
>  		};

  reply	other threads:[~2013-08-07 17:42 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-07 14:46 [PATCH 0/6] Tegra: Use cpufreq-cpu0 driver Viresh Kumar
2013-08-07 14:46 ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 1/6] clk: Tegra: Add CPU0 clock driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 16:44   ` Mike Turquette
2013-08-07 16:44     ` Mike Turquette
2013-08-07 16:44     ` Mike Turquette
2013-08-07 17:38   ` Stephen Warren
2013-08-07 17:38     ` Stephen Warren
2013-08-07 17:45     ` Viresh Kumar
2013-08-07 17:45       ` Viresh Kumar
2013-08-07 17:48       ` Stephen Warren
2013-08-07 17:48         ` Stephen Warren
2013-08-07 17:54         ` Viresh Kumar
2013-08-07 17:54           ` Viresh Kumar
2013-08-07 18:50           ` Stephen Warren
2013-08-07 18:50             ` Stephen Warren
2013-08-08  2:42             ` Viresh Kumar
2013-08-08  2:42               ` Viresh Kumar
2013-08-08 18:50               ` Stephen Warren
2013-08-08 18:50                 ` Stephen Warren
2013-08-09  3:19                 ` Viresh Kumar
2013-08-09  3:19                   ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 2/6] ARM: Tegra: Add CPU's OPPs for using cpufreq-cpu0 driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 17:42   ` Stephen Warren [this message]
2013-08-07 17:42     ` Stephen Warren
2013-08-07 18:06     ` Viresh Kumar
2013-08-07 18:06       ` Viresh Kumar
2013-08-07 18:55       ` Stephen Warren
2013-08-07 18:55         ` Stephen Warren
2013-08-08  2:57         ` Viresh Kumar
2013-08-08  2:57           ` Viresh Kumar
2013-08-08 18:55           ` Stephen Warren
2013-08-08 18:55             ` Stephen Warren
2013-08-08 13:58         ` Lucas Stach
2013-08-08 13:58           ` Lucas Stach
2013-08-08 13:58           ` Lucas Stach
2013-08-08 14:11           ` Viresh Kumar
2013-08-08 14:11             ` Viresh Kumar
2013-08-08 14:22             ` Lucas Stach
2013-08-08 14:22               ` Lucas Stach
2013-08-08 14:37               ` Viresh Kumar
2013-08-08 14:37                 ` Viresh Kumar
2013-08-08 15:52                 ` Nishanth Menon
2013-08-08 15:52                   ` Nishanth Menon
2013-08-08 15:52                   ` Nishanth Menon
2013-08-07 14:46 ` [PATCH 3/6] ARM: Tegra: Enable OPP library Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 17:43   ` Stephen Warren
2013-08-07 17:43     ` Stephen Warren
2013-08-07 18:08     ` Viresh Kumar
2013-08-07 18:08       ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 4/6] ARM: Tegra: defconfig: select cpufreq-cpu0 driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 5/6] ARM: Tegra: start using " Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-07 17:46   ` Stephen Warren
2013-08-07 17:46     ` Stephen Warren
2013-08-07 17:49     ` Viresh Kumar
2013-08-07 17:49       ` Viresh Kumar
2013-08-07 17:53       ` Stephen Warren
2013-08-07 17:53         ` Stephen Warren
2013-08-07 17:59         ` Viresh Kumar
2013-08-07 17:59           ` Viresh Kumar
2013-08-07 18:51           ` Stephen Warren
2013-08-07 18:51             ` Stephen Warren
2013-08-08  2:48             ` Viresh Kumar
2013-08-08  2:48               ` Viresh Kumar
2013-08-07 14:46 ` [PATCH 6/6] cpufreq: Tegra: Remove tegra-cpufreq driver Viresh Kumar
2013-08-07 14:46   ` Viresh Kumar
2013-08-08  8:31 ` [PATCH 0/6] Tegra: Use cpufreq-cpu0 driver Richard Zhao
2013-08-08  8:31   ` Richard Zhao
2013-08-08  8:33   ` Viresh Kumar
2013-08-08  8:33     ` Viresh Kumar

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=52028719.8070908@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=Mark.Rutland@arm.com \
    --cc=cpufreq@vger.kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=ian.campbell@citrix.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mturquette@linaro.org \
    --cc=patches@linaro.org \
    --cc=pawel.moll@arm.com \
    --cc=rjw@sisk.pl \
    --cc=rob.herring@calxeda.com \
    --cc=swarren@nvidia.com \
    --cc=viresh.kumar@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.