public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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


  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