Re: [PATCH] arm64: dts: qcom: hamoa/x1: Fix TODO in system power domain node
From: Val Packett
Date: Mon Feb 23 2026 - 00:54:05 EST
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@xxxxxxxxxxxxxxxx/
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