[PATCH v3] arm64: dts: exynos7: add support for cpuidle core power down

Lorenzo Pieralisi lorenzo.pieralisi at arm.com
Wed Nov 5 03:12:05 PST 2014


On Wed, Nov 05, 2014 at 10:15:36AM +0000, Chander Kashyap wrote:
> Exynos7 has core power down state where cores can be powered off independently.
> This patch adds support for this state.
> 
> Entry latency for the core power down is calculated as follows:
> 1. Time difference is measured between cpuidle entry and exit.
> 2. WFI is skipped measuring the time.
> 3. The time is averaged out for 100000 cpuidle transactions with varying load.
- entry-latency-us
	Usage: Required
	"Definition: u32 value representing worst case latency in microseconds
		     required to enter the idle state. ..."

Is that an average value in your opinion ? I am being pedantic, I know,
but we define bindings to be followed, not interpreted.

Thanks,
Lorenzo

> Exit latency and target residency are supplied as per HW team
> 
> Signed-off-by: Chander Kashyap <k.chander at samsung.com>
> ---
> This patch has following dependencies:
> 	- [PATCH v5 0/8] arch: arm64: Enable support for Samsung Exynos7 SoC
> 		http://www.spinics.net/lists/linux-samsung-soc/msg37047.html
> Changes in v2:
> 	- Moved the cpu-idle-state property after reg property
> 	- removed the status property.
> 
> Changes in v3:
> 	- Added the Entry latency calculation in commit message.
> 
>  arch/arm64/boot/dts/exynos/exynos7.dtsi |   17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi
> index 50ae936..444dde1 100644
> --- a/arch/arm64/boot/dts/exynos/exynos7.dtsi
> +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi
> @@ -37,6 +37,7 @@
>  			compatible = "arm,cortex-a57", "arm,armv8";
>  			enable-method = "psci";
>  			reg = <0x0>;
> +			cpu-idle-states = <&CPU_SLEEP>;
>  		};
>  
>  		cpu at 1 {
> @@ -44,6 +45,7 @@
>  			compatible = "arm,cortex-a57", "arm,armv8";
>  			enable-method = "psci";
>  			reg = <0x1>;
> +			cpu-idle-states = <&CPU_SLEEP>;
>  		};
>  
>  		cpu at 2 {
> @@ -51,6 +53,7 @@
>  			compatible = "arm,cortex-a57", "arm,armv8";
>  			enable-method = "psci";
>  			reg = <0x2>;
> +			cpu-idle-states = <&CPU_SLEEP>;
>  		};
>  
>  		cpu at 3 {
> @@ -58,6 +61,20 @@
>  			compatible = "arm,cortex-a57", "arm,armv8";
>  			enable-method = "psci";
>  			reg = <0x3>;
> +			cpu-idle-states = <&CPU_SLEEP>;
> +		};
> +
> +		idle-states {
> +			entry-method = "arm,psci";
> +
> +			CPU_SLEEP: cpu-sleep {
> +				compatible = "arm,idle-state";
> +				local-timer-stop;
> +				arm,psci-suspend-param = <0x0010000>;
> +				entry-latency-us = <20>;
> +				exit-latency-us = <150>;
> +				min-residency-us = <2100>;
> +			};
>  		};
>  	};
>  
> -- 
> 1.7.9.5
> 
> 



More information about the linux-arm-kernel mailing list