From: Val Packett <val@packett.cool>
To: "Maulik Shah (mkshah)" <maulik.shah@oss.qualcomm.com>,
Daniel J Blueman <daniel@quora.org>,
Konrad Dybcio <konradybcio@kernel.org>
Cc: Bjorn Andersson <andersson@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, stable@kernel.org
Subject: Re: [PATCH] arm64: dts: qcom: hamoa/x1: Fix TODO in system power domain node
Date: Mon, 23 Feb 2026 02:51:44 -0300 [thread overview]
Message-ID: <0397c453-e1ec-44a2-bf8f-a64347882226@packett.cool> (raw)
In-Reply-To: <9defac59-ae8a-4658-ab38-dcb0559d9708@oss.qualcomm.com>
On 2/23/26 1:11 AM, Maulik Shah (mkshah) wrote:
> On 2/21/2026 4:21 PM, Daniel J Blueman wrote:
[..]
>> Fix this by using the CPU C4, cluster CL5 and system DRIPS parameters from the ACPI DSDT Windows uses, together with the Low Power Idle _LPI minimum residency of 9000us and wake latency of 5000us as exit latency. Finally, assume the entry latency is the difference of these two values.
[..]
>> Fixes: f33767e3cfa5 ("arm64: dts: qcom: x1e80100: Add missing system-wide PSCI power domain")
> Using this fixes tag, can make the change back ported to stable kernels without dependencies and may break the GPIO IRQs.
>
> Background:
>
> PDC monitors the wakeup capable IRQs during system wide low power state, hitting the system low power mode can break to wake via GPIO IRQs.
> The system-wide idle state was not added since the wakeup capable GPIO IRQs were not configured at PDC with 602cb14e310a
> ("pinctrl: qcom: x1e80100: Bypass PDC wakeup parent for now").
>
> So IMO this fixes tag should be used instead of above with the changes to configure PDC to monitor GPIO wake ups.
> I have these changes to configure GPIO IRQs at PDC and enable back domain_ss3 idle state in my local tree, which i plan to
> post this week or next.
On a previous episode of L-K-M-L… :)
https://lore.kernel.org/all/0c8735f9-eac0-449c-aa95-b82cec0e6cb2@oss.qualcomm.com/
FWIW I have just tested Konrad's patch from there that adds all three
states (0x02000154, 0x02000254, and 0x0200c354):
❯ doas cat /sys/kernel/debug/pm_genpd/power-domain-system/idle_states
State Time(ms) Usage Rejected Above Below S2idle
S0 367 330 9 315 9 0
S1 2719 2057 553 2520 71 0
S2 0 0 1 1 0 0
As of right now I don't see any improvement in idle power consumption
from just this S1 thing, compared to not adding anything and having the
implicitly-added-by-code S0 state only.
It still only goes as low as 2.5W in screen-off idle, and that's with
runtime PM enabled for 3 USB controllers out of 4 (enabling it on all 4
makes the system shut down), without doing that it's more like 2.75W.
---
Maulik, since you seem to be the oss.qualcomm person familiar with power
management — could you please shine some light onto the mystery of how
Windows achieves ~0.5W battery consumption in screen-off idle (and only
slightly higher in screen-on idle) i.e. what exactly could be wasting
those extra 2W under Linux? Ever since people started daily driving X
series based laptops this has been an eternal topic/question in
aarch64-laptops…
Is it just Windows doing something "extraordinary" like opportunistic
full-system sleep (as deep as CX collapse), even with display on and in PSR?
Or are we still missing something big in Linux?
That issue with runtime-suspending all four USB controllers shutting the
system down, does that mean there's some rail where USB ends up being
the last load-bearing thing holding it up and we'd like to let it go
down properly?
Thanks
~val
next prev parent reply other threads:[~2026-02-23 5:52 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-21 10:51 [PATCH] arm64: dts: qcom: hamoa/x1: Fix TODO in system power domain node Daniel J Blueman
2026-02-23 4:11 ` Maulik Shah (mkshah)
2026-02-23 5:51 ` Val Packett [this message]
2026-02-23 16:02 ` Bjorn Andersson
2026-02-23 15:38 ` Bjorn Andersson
2026-02-23 15:40 ` Bjorn Andersson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0397c453-e1ec-44a2-bf8f-a64347882226@packett.cool \
--to=val@packett.cool \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=daniel@quora.org \
--cc=devicetree@vger.kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maulik.shah@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=stable@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox