Re: [PATCH] arm64: dts: Hi3660: Remove 'CPU_NAP' idle state

From: Vincent Guittot
Date: Wed Jan 10 2018 - 03:39:25 EST


On 9 January 2018 at 05:32, Leo Yan <leo.yan@xxxxxxxxxx> wrote:
> Thanks a lot for Vincent Guittot careful work to find bug for 'CPU_NAP'
> idle state. At early time, the CPU CA73 CPU_NAP idle state has been
> supported on Hikey960. Later we found the system has the hang issue
> and for resolving this issue Hisilicon released new MCU firmware, but
> unfortunately the new MCU firmware has side effect and results in the
> CA73 CPU cannot really enter CPU_NAP state and roll back to WFI state.
>
> After discussion we cannot see the possibility to enable CA73 CPU_NAP
> state anymore on Hikey960, based on this conclusion we should remove
> this state from DT binding.
>
> Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> Cc: Kevin Wang <jean.wangtao@xxxxxxxxxx>
> Cc: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
> Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>

Tested-by: Vincent Guittot <vincent.guittot@xxxxxxxxxx>

> ---
> arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 32 ++++---------------------------
> 1 file changed, 4 insertions(+), 28 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
> index ab0b95b..8fddf0d 100644
> --- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
> +++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
> @@ -96,11 +96,7 @@
> reg = <0x0 0x100>;
> enable-method = "psci";
> next-level-cache = <&A73_L2>;
> - cpu-idle-states = <
> - &CPU_NAP
> - &CPU_SLEEP
> - &CLUSTER_SLEEP_1
> - >;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
> };
>
> cpu5: cpu@101 {
> @@ -109,11 +105,7 @@
> reg = <0x0 0x101>;
> enable-method = "psci";
> next-level-cache = <&A73_L2>;
> - cpu-idle-states = <
> - &CPU_NAP
> - &CPU_SLEEP
> - &CLUSTER_SLEEP_1
> - >;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
> };
>
> cpu6: cpu@102 {
> @@ -122,11 +114,7 @@
> reg = <0x0 0x102>;
> enable-method = "psci";
> next-level-cache = <&A73_L2>;
> - cpu-idle-states = <
> - &CPU_NAP
> - &CPU_SLEEP
> - &CLUSTER_SLEEP_1
> - >;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
> };
>
> cpu7: cpu@103 {
> @@ -135,24 +123,12 @@
> reg = <0x0 0x103>;
> enable-method = "psci";
> next-level-cache = <&A73_L2>;
> - cpu-idle-states = <
> - &CPU_NAP
> - &CPU_SLEEP
> - &CLUSTER_SLEEP_1
> - >;
> + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_1>;
> };
>
> idle-states {
> entry-method = "psci";
>
> - CPU_NAP: cpu-nap {
> - compatible = "arm,idle-state";
> - arm,psci-suspend-param = <0x0000001>;
> - entry-latency-us = <7>;
> - exit-latency-us = <2>;
> - min-residency-us = <15>;
> - };
> -
> CPU_SLEEP: cpu-sleep {
> compatible = "arm,idle-state";
> local-timer-stop;
> --
> 2.7.4
>