diff mbox series

[1/6] arm64: dts: qcom: sm8250: drop incorrect domain idle states properties

Message ID 20230324073813.22158-1-krzysztof.kozlowski@linaro.org
State Accepted
Commit dffc4b5c086cf1d3dae4761427122a56b9d1253a
Headers show
Series [1/6] arm64: dts: qcom: sm8250: drop incorrect domain idle states properties | expand

Commit Message

Krzysztof Kozlowski March 24, 2023, 7:38 a.m. UTC
Domain idle states do not use 'idle-state-name' and 'local-timer-stop':

  sm8250-hdk.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name', 'local-timer-stop' do not match any of the regexes: 'pinctrl-[0-9]+'

Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/all/20230323-topic-sm8450-upstream-dt-bindings-fixes-v1-4-3ead1e418fe4@linaro.org/
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 --
 1 file changed, 2 deletions(-)

Comments

Dmitry Baryshkov March 28, 2023, 10:51 p.m. UTC | #1
On 24/03/2023 09:38, Krzysztof Kozlowski wrote:
> Domain idle states do not use 'idle-state-name' and 'local-timer-stop':
> 
>    sm8250-hdk.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name', 'local-timer-stop' do not match any of the regexes: 'pinctrl-[0-9]+'
> 
> Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
> Link: https://lore.kernel.org/all/20230323-topic-sm8450-upstream-dt-bindings-fixes-v1-4-3ead1e418fe4@linaro.org/
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>   arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 --
>   1 file changed, 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index 79d67b466856..9cf2de87c632 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -354,12 +354,10 @@ BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
>   		domain-idle-states {
>   			CLUSTER_SLEEP_0: cluster-sleep-0 {
>   				compatible = "domain-idle-state";
> -				idle-state-name = "cluster-llcc-off";
>   				arm,psci-suspend-param = <0x4100c244>;
>   				entry-latency-us = <3264>;
>   				exit-latency-us = <6562>;
>   				min-residency-us = <9987>;
> -				local-timer-stop;

Hmm, so we support setting the broadcast timer when using plain PSCI 
idle states, but not when using the domain-based idle states.

Ulf, Rafael, Daniel, is that an omission for the domain-based idle 
support? Or is it handled in some other way?

>   			};
>   		};
>   	};
Ulf Hansson March 29, 2023, 9:45 a.m. UTC | #2
On Wed, 29 Mar 2023 at 00:51, Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> On 24/03/2023 09:38, Krzysztof Kozlowski wrote:
> > Domain idle states do not use 'idle-state-name' and 'local-timer-stop':
> >
> >    sm8250-hdk.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name', 'local-timer-stop' do not match any of the regexes: 'pinctrl-[0-9]+'
> >
> > Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
> > Link: https://lore.kernel.org/all/20230323-topic-sm8450-upstream-dt-bindings-fixes-v1-4-3ead1e418fe4@linaro.org/
> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> > ---
> >   arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 --
> >   1 file changed, 2 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> > index 79d67b466856..9cf2de87c632 100644
> > --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> > @@ -354,12 +354,10 @@ BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
> >               domain-idle-states {
> >                       CLUSTER_SLEEP_0: cluster-sleep-0 {
> >                               compatible = "domain-idle-state";
> > -                             idle-state-name = "cluster-llcc-off";
> >                               arm,psci-suspend-param = <0x4100c244>;
> >                               entry-latency-us = <3264>;
> >                               exit-latency-us = <6562>;
> >                               min-residency-us = <9987>;
> > -                             local-timer-stop;
>
> Hmm, so we support setting the broadcast timer when using plain PSCI
> idle states, but not when using the domain-based idle states.
>
> Ulf, Rafael, Daniel, is that an omission for the domain-based idle
> support? Or is it handled in some other way?

I am not sure that we need a DT binding specifically for this, or do we?

So far, the timer is managed from platform specific code. For some
Qcom based platforms, the timer should be managed in
rpmh_rsc_write_next_wakeup(), which makes use of
dev_pm_genpd_get_next_hrtimer().

[...]

Kind regards
Uffe
Ulf Hansson March 29, 2023, 9:52 a.m. UTC | #3
On Fri, 24 Mar 2023 at 08:38, Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> Domain idle states do not use 'idle-state-name' and 'local-timer-stop':
>
>   sm8250-hdk.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name', 'local-timer-stop' do not match any of the regexes: 'pinctrl-[0-9]+'
>
> Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
> Link: https://lore.kernel.org/all/20230323-topic-sm8450-upstream-dt-bindings-fixes-v1-4-3ead1e418fe4@linaro.org/
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>

> ---
>  arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index 79d67b466856..9cf2de87c632 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -354,12 +354,10 @@ BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
>                 domain-idle-states {
>                         CLUSTER_SLEEP_0: cluster-sleep-0 {
>                                 compatible = "domain-idle-state";
> -                               idle-state-name = "cluster-llcc-off";

FYI: If someone wants to add support for this property, I wouldn't mind.

>                                 arm,psci-suspend-param = <0x4100c244>;
>                                 entry-latency-us = <3264>;
>                                 exit-latency-us = <6562>;
>                                 min-residency-us = <9987>;
> -                               local-timer-stop;
>                         };
>                 };
>         };
> --
> 2.34.1
>

Kind regards
Uffe
Dmitry Baryshkov March 29, 2023, 10:58 a.m. UTC | #4
On 29/03/2023 12:45, Ulf Hansson wrote:
> On Wed, 29 Mar 2023 at 00:51, Dmitry Baryshkov
> <dmitry.baryshkov@linaro.org> wrote:
>>
>> On 24/03/2023 09:38, Krzysztof Kozlowski wrote:
>>> Domain idle states do not use 'idle-state-name' and 'local-timer-stop':
>>>
>>>     sm8250-hdk.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name', 'local-timer-stop' do not match any of the regexes: 'pinctrl-[0-9]+'
>>>
>>> Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
>>> Link: https://lore.kernel.org/all/20230323-topic-sm8450-upstream-dt-bindings-fixes-v1-4-3ead1e418fe4@linaro.org/
>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>> ---
>>>    arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 --
>>>    1 file changed, 2 deletions(-)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>> index 79d67b466856..9cf2de87c632 100644
>>> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>> @@ -354,12 +354,10 @@ BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
>>>                domain-idle-states {
>>>                        CLUSTER_SLEEP_0: cluster-sleep-0 {
>>>                                compatible = "domain-idle-state";
>>> -                             idle-state-name = "cluster-llcc-off";
>>>                                arm,psci-suspend-param = <0x4100c244>;
>>>                                entry-latency-us = <3264>;
>>>                                exit-latency-us = <6562>;
>>>                                min-residency-us = <9987>;
>>> -                             local-timer-stop;
>>
>> Hmm, so we support setting the broadcast timer when using plain PSCI
>> idle states, but not when using the domain-based idle states.
>>
>> Ulf, Rafael, Daniel, is that an omission for the domain-based idle
>> support? Or is it handled in some other way?
> 
> I am not sure that we need a DT binding specifically for this, or do we?
> 
> So far, the timer is managed from platform specific code. For some
> Qcom based platforms, the timer should be managed in
> rpmh_rsc_write_next_wakeup(), which makes use of
> dev_pm_genpd_get_next_hrtimer().

I'm not sure whether I fully follow this (I might lack some 
understanding here). I thought that with "local-timer-stop" (well, 
CPUIDLE_FLAG_TIMER_STOP), we were switching to the broadcast timer 
before a core/cluster goes into idle state with no local timer, while 
with  rpmh_rsc_write_next_wakeup() we write that only before shutting 
down the last core (see the comment at rpmh_flush()).

This might be an expected thing, I probably don't have enough 
understanding of the cpuidle internals to judge this.

> 
> [...]
> 
> Kind regards
> Uffe
Bjorn Andersson April 5, 2023, 4:09 a.m. UTC | #5
On Fri, 24 Mar 2023 08:38:08 +0100, Krzysztof Kozlowski wrote:
> Domain idle states do not use 'idle-state-name' and 'local-timer-stop':
> 
>   sm8250-hdk.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name', 'local-timer-stop' do not match any of the regexes: 'pinctrl-[0-9]+'
> 
> 

Applied, thanks!

[1/6] arm64: dts: qcom: sm8250: drop incorrect domain idle states properties
      commit: dffc4b5c086cf1d3dae4761427122a56b9d1253a
[2/6] arm64: dts: qcom: sdm845: drop incorrect domain idle states properties
      commit: 1766e9155d086cd238c24113a7be9740d35c2ebe
[3/6] arm64: dts: qcom: sm6375: drop incorrect domain idle states properties
      commit: ac7944f01b771af7718a81793ca5b38b0e3a0c21
[4/6] arm64: dts: qcom: sm8150: drop incorrect domain idle states properties
      commit: 770f85c19536fde3591f4f2f70ac32f33d86b975
[5/6] arm64: dts: qcom: sm8350: drop incorrect domain idle states properties
      commit: 7983224c6a6cea77aa0b9b4e23bb7651241df961
[6/6] arm64: dts: qcom: sc8280xp: drop incorrect domain idle states properties
      commit: ea1811e2614cd66608961ae3c5a9ee6038fc424b

Best regards,
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 79d67b466856..9cf2de87c632 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -354,12 +354,10 @@  BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
 		domain-idle-states {
 			CLUSTER_SLEEP_0: cluster-sleep-0 {
 				compatible = "domain-idle-state";
-				idle-state-name = "cluster-llcc-off";
 				arm,psci-suspend-param = <0x4100c244>;
 				entry-latency-us = <3264>;
 				exit-latency-us = <6562>;
 				min-residency-us = <9987>;
-				local-timer-stop;
 			};
 		};
 	};