mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 0/9] Add fallback method to handle RPM notification in MPM driver
@ 2026-10-15  9:55 Sneh Mankad
  2026-10-15  9:55 ` [PATCH v2 1/9] arm64: dts: qcom: shikra: Add CPU idle states Sneh Mankad
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Sneh Mankad @ 2026-10-15  9:55 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Thomas Gleixner, Shawn Guo, Marc Zyngier,
	Catalin Marinas, Will Deacon, Anna-Maria Behnsen,
	Frederic Weisbecker
  Cc: linux-arm-msm, devicetree, linux-kernel, linux-arm-kernel, Sneh Mankad

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 earlier introduced 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.

The above problem has since been resolved after bd7f488a8e5d ("cpuidle:
psci: Fix support for probe deferral by dropping the faux device") / [1].
However, it makes sense to remodel the RPM notification in MPM irqchip due
to general consistency.

MPM is not really a power domain provider, all it needs is a notification
when CPU cluster is going to power collapse to carry out the RPM
notification. We can register for CPU_PM notifications for that purpose.
This way we can avoid such unrelated dependencies.

We cannot register MPM under CPU cluster power domain and rely on
GENPD notifications here, since that way cluster low power modes will be
blocked whenever some consumer of MPM, and in turn MPM itself, are
runtime active. This will add another unnecessary dependency for CPU
cluster low power modes.

For now as first step, register with cpu_pm as a fallback to manage RPM
notification. Trigger the RPM notification when the last CPU in CPU cluster
goes to power collapse.

Add support to program MPM wakeup timer when CPU cluster goes to power
collapse.

Enable CPU and CPU cluster LPMs for Shikra, and CPU cluster LPMs for
qrb2210-rb1 board.

[1] https://lore.kernel.org/all/20260909134240.685115374@linuxfoundation.org

Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
---
Changes in v2:
- Enable Shikra LPMs in the first patch, following patches concern
  MPM driver.
- Register with cpu_pm as a fallback to manage RPM notification.
- Move USECS_TO_CYCLES and xloops_to_cycles to common header delay.h.
- Reformat qcom_mpm_offset() as per feedback.
- Avoid deleting cluster_pd node in qrb2210-rb1.dts.
- Link to v1: https://lore.kernel.org/r/20260713-b4-shikra_lpm_addition-v1-0-3d858df2cbbf@oss.qualcomm.com

---
Sneh Mankad (9):
      arm64: dts: qcom: shikra: Add CPU idle states
      irqchip: irq-qcom-mpm: Register MPM with cpu_pm for RPM notification
      arm64: delay: Move USECS_TO_CYCLES() to generic header
      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: Do not mark MPM as a power domain provider
      arm64: dts: qcom: agatti: Do not mark MPM as power domain provider
      arm64: dts: qcom: qrb2210-rb1: Enable CPU cluster low power mode
      arm64: dts: qcom: shikra: Do not mark MPM as power domain provider

 arch/arm64/boot/dts/qcom/agatti.dtsi     |   2 -
 arch/arm64/boot/dts/qcom/qrb2210-rb1.dts |   2 -
 arch/arm64/boot/dts/qcom/shikra.dtsi     |  93 ++++++++++++++++-
 arch/arm64/boot/dts/qcom/sm6375.dtsi     |   2 -
 arch/arm64/lib/delay.c                   |   8 --
 drivers/irqchip/irq-qcom-mpm.c           | 166 +++++++++++++++++++++++++------
 drivers/soc/qcom/rpmh-rsc.c              |   8 --
 include/linux/delay.h                    |   8 ++
 8 files changed, 236 insertions(+), 53 deletions(-)
---
base-commit: 7777cc195ca1301a28008ca5cdb98bdb2a9d0def
change-id: 20260617-b4-shikra_lpm_addition-4a9bc82bafee

Best regards,
-- 
Sneh Mankad <sneh.mankad@oss.qualcomm.com>


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

end of thread, other threads:[~2026-10-19 11:56 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-15  9:55 [PATCH v2 0/9] Add fallback method to handle RPM notification in MPM driver Sneh Mankad
2026-10-15  9:55 ` [PATCH v2 1/9] arm64: dts: qcom: shikra: Add CPU idle states Sneh Mankad
2026-10-15  9:55 ` [PATCH v2 2/9] irqchip: irq-qcom-mpm: Register MPM with cpu_pm for RPM notification Sneh Mankad
2026-10-19 11:10   ` Konrad Dybcio
2026-10-19 11:24   ` Konrad Dybcio
2026-10-15  9:55 ` [PATCH v2 3/9] arm64: delay: Move USECS_TO_CYCLES() to generic header Sneh Mankad
2026-10-15  9:55 ` [PATCH v2 4/9] irqchip/irq-qcom-mpm: Prepare common access path for timer and pin regs Sneh Mankad
2026-10-19 11:19   ` Konrad Dybcio
2026-10-15  9:55 ` [PATCH v2 5/9] irqchip/irq-qcom-mpm: Program wakeup timer when CPU cluster goes to LPM Sneh Mankad
2026-10-19 11:56   ` Konrad Dybcio
2026-10-15  9:55 ` [PATCH v2 6/9] arm64: dts: qcom: sm6375: Do not mark MPM as a power domain provider Sneh Mankad
2026-10-15  9:55 ` [PATCH v2 7/9] arm64: dts: qcom: agatti: Do not mark MPM as " Sneh Mankad
2026-10-15  9:55 ` [PATCH v2 8/9] arm64: dts: qcom: qrb2210-rb1: Enable CPU cluster low power mode Sneh Mankad
2026-10-15  9:55 ` [PATCH v2 9/9] arm64: dts: qcom: shikra: Do not mark MPM as power domain provider Sneh Mankad

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®