From: Fabricio Akio via B4 Relay <devnull+fabricioakio.gmail.com@kernel.org>
To: Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: Abel Vesa <abelvesa@kernel.org>,
Alexey Minnekhanov <alexeymin@postmarketos.org>,
Dmitry Baryshkov <lumag@kernel.org>,
Martin Botka <martin.botka@somainline.org>,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
Fabricio Akio <fabricioakio@gmail.com>
Subject: [PATCH 0/2] arm64: dts: qcom: sdm630: Fix the CPU idle states
Date: Sun, 11 Oct 2026 23:18:06 -0300 [thread overview]
Message-ID: <20261011-sdm630-idle-states-v1-0-3181d488dc0f@gmail.com> (raw)
Of the five idle states sdm630.dtsi gives each CPU, four are never
entered. The three cluster states use PSCI parameters that are not in
the encoding the vendor kernel uses, and cpuidle records no successful
entry into them. Because they are the deepest states, an idle CPU
keeps choosing one, each attempt returns at once, and the CPU spends
its idle time retrying instead of sleeping. CPU retention sets the bit
that marks a state as losing context. The first patch drops the cluster
states, the second fixes the retention parameter.
Tested on a Motorola Moto X4 (SDM630), whose board file is not in
mainline yet, on sdm660-mainline's 7.2 kernel, whose idle states are
these: with the screen off and the charger input suspended, the
battery current drops from 277 mA to 117 mA.
This firmware denies platform-coordinated mode at boot ("psci:
[Firmware Bug]: failed to set PC mode: -3"), and the vendor kernel
requests a cluster state only from the last CPU of a cluster.
Restoring cluster idle that way, with the CPUs described as PSCI
power domains, is left for a later series.
---
Fabricio Akio (2):
arm64: dts: qcom: sdm630: Drop the cluster idle states
arm64: dts: qcom: sdm630: Fix the CPU retention idle state parameter
arch/arm64/boot/dts/qcom/sdm630.dtsi | 112 ++++-------------------------------
1 file changed, 10 insertions(+), 102 deletions(-)
---
base-commit: becb95e45ef0dda9ffb35156d909d3da7a2789c3
change-id: 20261011-sdm630-idle-states-84f3ac364b2c
Best regards,
--
Fabricio Akio <fabricioakio@gmail.com>
next reply other threads:[~2026-10-12 2:18 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 2:18 Fabricio Akio via B4 Relay [this message]
2026-10-12 2:18 ` [PATCH 1/2] arm64: dts: qcom: sdm630: Drop the cluster " Fabricio Akio via B4 Relay
2026-10-15 13:51 ` Konrad Dybcio
2026-10-20 16:15 ` Fabricio Akio
2026-10-23 12:44 ` Konrad Dybcio
2026-10-23 16:27 ` Konrad Dybcio
2026-10-12 2:18 ` [PATCH 2/2] arm64: dts: qcom: sdm630: Fix the CPU retention idle state parameter Fabricio Akio via B4 Relay
2026-10-15 13:41 ` Konrad Dybcio
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=20261011-sdm630-idle-states-v1-0-3181d488dc0f@gmail.com \
--to=devnull+fabricioakio.gmail.com@kernel.org \
--cc=abelvesa@kernel.org \
--cc=alexeymin@postmarketos.org \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=fabricioakio@gmail.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lumag@kernel.org \
--cc=martin.botka@somainline.org \
--cc=robh@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
all inboxes | Powered by JetHome®