mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] arm64: dts: qcom: sdm630: Fix the CPU idle states
@ 2026-10-12  2:18 Fabricio Akio via B4 Relay
  2026-10-12  2:18 ` [PATCH 1/2] arm64: dts: qcom: sdm630: Drop the cluster " Fabricio Akio via B4 Relay
  2026-10-12  2:18 ` [PATCH 2/2] arm64: dts: qcom: sdm630: Fix the CPU retention idle state parameter Fabricio Akio via B4 Relay
  0 siblings, 2 replies; 5+ messages in thread
From: Fabricio Akio via B4 Relay @ 2026-10-12  2:18 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Abel Vesa, Alexey Minnekhanov, Dmitry Baryshkov, Martin Botka,
	linux-arm-msm, devicetree, linux-kernel, Fabricio Akio

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>



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-10-15 13:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-12  2:18 [PATCH 0/2] arm64: dts: qcom: sdm630: Fix the CPU idle states Fabricio Akio via B4 Relay
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-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

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®