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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.