Re: [PATCH 0/3] pmdomain: Support system-suspend-only domain idle states
From: Kevin Hilman
Date: Tue Oct 06 2026 - 09:37:56 EST
Maulik Shah <maulik.shah@xxxxxxxxxxxxxxxx> writes:
[...]
> All domain idle states described in devicetree are currently considered
> during the regular idle path. This limits which states can be described in
> devicetree. Due to hardware constraints, some domain idle states are only
> applicable to system-wide suspend, including suspend-to-idle (s2idle).
>
> To allow these states to be described in DT and used only during system
> suspend, this series adds a boolean system-state property to domain idle
> state bindings and a corresponding system_state boolean in genpd. The
> genpd governors skip these states during normal operation. The system
> suspend selection path remains unchanged, allowing these states during
> suspend while retaining the existing wakeup latency checks for s2idle.
>
> This series applies to cluster idle states with the "domain-idle-state"
> compatible string managed by genpd and its governors, but can be extended
> to CPU idle states with the "arm,idle-state" compatible string if the same
> restriction is needed for CPUidle states too.
>
> Assisted-by: Codex:GPT-6
> Signed-off-by: Maulik Shah <maulik.shah@xxxxxxxxxxxxxxxx>
Acked-by: Kevin Hilman <khilman@xxxxxxxxxxxx>
Thank you for submitting this. I have been considering how to add
exactly this feature, so I add an enthusaistic +1 to the need for
this feature.
On TI SoCs where we use s2idle, we have similar reasons to have
domain-idle-states that should only be available during system-wide
suspend-to-idle.
The current hack to supporting this is to just use absurdly high
residency numbers for these system states such that the runtime CPUidle
never picks the states. But this is a hack, and is not describing the
hardware, so I would much rather see a way to describe this in DT.
Thanks,
Kevin