[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5c232df5-fbce-21a4-6414-9522f70be087@linaro.org>
Date: Wed, 29 Mar 2023 13:58:53 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: Ulf Hansson <ulf.hansson@...aro.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konrad.dybcio@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
"Rafael J. Wysocki" <rafael@...nel.org>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Neil Armstrong <neil.armstrong@...aro.org>,
Linux PM <linux-pm@...r.kernel.org>
Subject: Re: [PATCH 1/6] arm64: dts: qcom: sm8250: drop incorrect domain idle
states properties
On 29/03/2023 12:45, Ulf Hansson wrote:
> On Wed, 29 Mar 2023 at 00:51, Dmitry Baryshkov
> <dmitry.baryshkov@...aro.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@...aro.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@...aro.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
--
With best wishes
Dmitry
Powered by blists - more mailing lists