From: Christopher Obbard <chris.obbard@oss.qualcomm.com>
To: sneh.mankad@oss.qualcomm.com
Cc: andersson@kernel.org, conor+dt@kernel.org,
devicetree@vger.kernel.org, konradybcio@kernel.org,
krzk+dt@kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org, maz@kernel.org, robh@kernel.org,
shawn.guo@linaro.org, tglx@kernel.org,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Subject: Re: [PATCH 0/7] Register MPM under CPU cluster power domain to manage RPM notification
Date: Fri, 11 Sep 2026 09:33:49 +0100 [thread overview]
Message-ID: <0b06e405f03ff521efc55ef1964726c8d8a11476.camel@oss.qualcomm.com> (raw)
In-Reply-To: <20260713-b4-shikra_lpm_addition-v1-0-3d858df2cbbf@oss.qualcomm.com>
Hi Sneh,
> MPM irqchip needs to notify RPM (Resource Power Manager) processor to read
> the latest wake up capable interrupts when the CPU cluster is entering the
> deepest idle state. This is done by sending IPC interrupt to RPM and is
> implemented as .power_off() callback by registering MPM as parent power
> domain to CPU cluster.
>
> Such implementation introduces a hard probe dependency between MPM irqchip
> and CPU cluster power domains. That is MPM irqchip needs to finish probe
> before PSCI power domains are probed. MPM irqchip can be build as module
> and can get later inserted where as PSCI power domains is not a module.
>
> For in-built driver cases too PSCI domain gets probed first and later MPM
> irqchip leading to failure of CPUidle states.
..snip..
> commit af5376a77e87 ("cpuidle: psci: Transition to the faux device
> interface") transitioned cpuidle-psci to a faux device interface.
>
> faux_device_create() calls faux_device_create_with_groups(), which ignores
> the probe return value, and destroys the device if dev->driver is not set.
This is no longer true, see Commit 0606f2114e2d ("cpuidle: psci: Fix
support for probe deferral by dropping the faux device").
..snip..
> Currently only 2 SoCs follow this method - Agatti and sm6375. Agatti has
> CPU cluster power domain disabled, which is why idle-states are allowed to
> function there.
Please don't forget about the devices which use the SoC: For Agatti, the
RB1 (qrb2210-rb1) and Arduino UnoQ (qrb2210-arduino-imola) are both
setup
with different power domains (off-topic: I believe this is something
which can be reworked soon as the mpm driver could be in a better place
than before? Didn't check.).
> Move the RPM notification handling to the GENPD_NOTIFY_PRE_OFF callback and
> register MPM under the CPU cluster power domain. Use runtime PM to report
> the default RPM_SUSPENDED state to genPD so that the CPU cluster power
> domain can enter low power mode.
>
> This will remove the dependency on probe ordering and allow individual CPU
> idle states, CPU cluster idle states and RPM notification to function
> properly.
>
> Also enable CPU and CPU cluster LPMs for Shikra.
>
> Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
> ---
> Sneh Mankad (7):
> dt-bindings: interrupt-controller: mpm: Document power-domains property
> irqchip/irq-qcom-mpm: Register MPM under CPU cluster power domain
> irqchip/irq-qcom-mpm: Prepare common access path for timer and pin regs
> irqchip/irq-qcom-mpm: Program wakeup timer when CPU cluster goes to LPM
> arm64: dts: qcom: sm6375: Make MPM device as part of CPU cluster domain
> arm64: dts: qcom: agatti: Do not mark MPM as power domain
> arm64: dts: qcom: shikra: Add CPU idle states
I also noticed that patches 2 and 6 are a matched pair but sit four
patches apart. Every commit in between leaves Agatti device with no
working CPU idle and e.g. a bisect can land inside that window. Can you
move the DTS changes first?
Cheers!
Chris
prev parent reply other threads:[~2026-09-11 8:33 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-13 10:25 [PATCH 0/7] Register MPM under CPU cluster power domain to manage RPM notification Sneh Mankad
2026-07-13 10:25 ` [PATCH 1/7] dt-bindings: interrupt-controller: mpm: Document power-domains property Sneh Mankad
2026-07-13 10:36 ` sashiko-bot
2026-07-13 11:26 ` Konrad Dybcio
2026-08-03 5:28 ` Sneh Mankad
2026-07-13 15:11 ` Marc Zyngier
2026-07-15 6:38 ` Marek Szyprowski
2026-07-15 8:54 ` Marc Zyngier
2026-08-03 10:28 ` Sneh Mankad
2026-08-03 19:21 ` Dmitry Baryshkov
2026-07-21 9:06 ` Krzysztof Kozlowski
2026-08-03 5:30 ` Sneh Mankad
2026-08-03 19:21 ` Dmitry Baryshkov
2026-07-13 10:25 ` [PATCH 2/7] irqchip/irq-qcom-mpm: Register MPM under CPU cluster power domain Sneh Mankad
2026-07-13 10:41 ` sashiko-bot
2026-07-15 9:46 ` Konrad Dybcio
2026-07-15 10:34 ` Stephan Gerhold
2026-07-15 10:45 ` Konrad Dybcio
2026-07-15 10:49 ` Stephan Gerhold
2026-07-15 11:11 ` Konrad Dybcio
2026-07-21 22:18 ` Dmitry Baryshkov
2026-07-22 8:29 ` Konrad Dybcio
2026-08-03 10:58 ` Sneh Mankad
2026-08-19 13:49 ` Konrad Dybcio
2026-07-13 10:25 ` [PATCH 3/7] irqchip/irq-qcom-mpm: Prepare common access path for timer and pin regs Sneh Mankad
2026-07-13 10:39 ` sashiko-bot
2026-07-15 9:59 ` Konrad Dybcio
2026-07-13 10:25 ` [PATCH 4/7] irqchip/irq-qcom-mpm: Program wakeup timer when CPU cluster goes to LPM Sneh Mankad
2026-07-13 10:38 ` sashiko-bot
2026-07-13 15:18 ` Marc Zyngier
2026-08-03 11:03 ` Sneh Mankad
2026-07-13 10:25 ` [PATCH 5/7] arm64: dts: qcom: sm6375: Make MPM device as part of CPU cluster domain Sneh Mankad
2026-07-13 10:40 ` sashiko-bot
2026-07-13 10:25 ` [PATCH 6/7] arm64: dts: qcom: agatti: Do not mark MPM as power domain Sneh Mankad
2026-07-13 10:39 ` sashiko-bot
2026-07-15 10:01 ` Konrad Dybcio
2026-07-21 22:22 ` Dmitry Baryshkov
2026-07-22 8:28 ` Konrad Dybcio
2026-07-22 12:40 ` Dmitry Baryshkov
2026-08-03 10:37 ` Sneh Mankad
2026-07-21 22:21 ` Dmitry Baryshkov
2026-07-13 10:25 ` [PATCH 7/7] arm64: dts: qcom: shikra: Add CPU idle states Sneh Mankad
2026-07-15 10:02 ` Konrad Dybcio
2026-08-03 10:33 ` Sneh Mankad
2026-08-19 13:46 ` Konrad Dybcio
2026-09-11 8:33 ` Christopher Obbard [this message]
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=0b06e405f03ff521efc55ef1964726c8d8a11476.camel@oss.qualcomm.com \
--to=chris.obbard@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=robh@kernel.org \
--cc=shawn.guo@linaro.org \
--cc=sneh.mankad@oss.qualcomm.com \
--cc=tglx@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