Messages in this thread | | | Date | Wed, 29 Mar 2023 13:58:53 +0300 | Subject | Re: [PATCH 1/6] arm64: dts: qcom: sm8250: drop incorrect domain idle states properties | From | Dmitry Baryshkov <> |
| |
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
-- With best wishes Dmitry
| |