All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shawn Guo <shengchao.guo@oss.qualcomm.com>
To: Bjorn Andersson <andersson@kernel.org>
Cc: Konrad Dybcio <konradybcio@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>,
	Deepti Jaggi <deepti.jaggi@oss.qualcomm.com>,
	Mukesh Savaliya <mukesh.savaliya@oss.qualcomm.com>,
	Yadu M G <yadu.mg@oss.qualcomm.com>,
	Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>,
	devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] remoteproc: qcom_q6v5_pas: add HPASS ADSP cluster boot-order and SSR coupling
Date: Mon, 10 Aug 2026 19:29:01 +0800	[thread overview]
Message-ID: <anm1_dJl2QLmQcw4@QCOM-aGQu4IUr3Y> (raw)
In-Reply-To: <20260810110726.775084-3-shengchao.guo@oss.qualcomm.com>

On Mon, Aug 10, 2026 at 07:07:21PM +0800, Shawn Guo wrote:
> Some Qualcomm SoCs (e.g. Nord's HPASS ADSP0/1/2) group multiple PAS
> instances that share clock/reset/NoC resources: one instance (the
> "root") must finish booting before its siblings can cold boot, and any
> member crashing, or being manually stopped on its own, must bring the
> whole group down and back up together - matching the downstream
> coupled-SSR ("MDF") group model, which never leaves the group in a
> partially up/down state and has no notion of restarting a single
> member alone.
> 
> Add a shared, kref-managed struct qcom_pas_cluster (mutex, members
> list, waitqueue, booted/restart_pending flags), looked up or created
> order-independently in qcom_pas_probe() keyed by the cluster root's
> device_node (works regardless of which member probes first), and torn
> down via kref_put() in qcom_pas_remove().
> 
> Non-root members now wait for the root to finish booting before their
> own qcom_pas_start()/qcom_pas_attach() proceeds (qcom_pas_wait_for_cluster_root()),
> and the root marks the cluster booted once it completes its own boot
> (qcom_pas_cluster_mark_booted()).
> 
> A new subdev callback, qcom_pas_cluster_stop(), fans a stop event on
> any one member out to every other member: a real crash is propagated
> via rproc_report_crash() so the whole cluster crashes and automatically
> recovers together, while a manual (non-crash) stop instead force-stops
> every other member via a deferred rproc_shutdown() (run from a
> dedicated work item, since calling it inline would race with the
> target's own concurrently running IRQ-driven state machine). A
> restart_pending latch ensures only the first member to observe the
> stop acts on the rest, and is cleared once the root reboots.
> 
> A manual start of a single non-root member is deliberately not turned
> into a whole-cluster boot: qcom_pas_wait_for_cluster_root() just waits
> out its timeout and fails if the root isn't already up, rejecting the
> solo start rather than force-booting the root on the caller's behalf.
> ---
>  drivers/remoteproc/qcom_q6v5_pas.c | 271 +++++++++++++++++++++++++++++
>  1 file changed, 271 insertions(+)

Sorry! Please disregard this.

Shawn

  parent reply	other threads:[~2026-08-10 11:29 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-10 11:07 [PATCH v10 0/6] Add initial device trees for Nord platform Shawn Guo
2026-08-10 11:07 ` [PATCH v10 1/6] arm64: dts: qcom: Add device tree for Nord SoC series Shawn Guo
2026-08-10 11:21   ` sashiko-bot
2026-08-10 11:07 ` [PATCH] remoteproc: qcom_q6v5_pas: add HPASS ADSP cluster boot-order and SSR coupling Shawn Guo
2026-08-10 11:17   ` sashiko-bot
2026-08-10 11:29   ` Shawn Guo [this message]
2026-08-10 11:07 ` [PATCH v10 2/6] arm64: dts: qcom: Add device tree for Nord GearVM variant Shawn Guo
2026-08-10 11:23   ` sashiko-bot
2026-08-10 11:07 ` [PATCH v10 3/6] arm64: dts: qcom: Add device tree for Nord Embedded variant Shawn Guo
2026-08-10 11:07 ` [PATCH v10 4/6] dt-bindings: arm: qcom: Document Nord reference boards Shawn Guo
2026-08-10 11:07 ` [PATCH v10 5/6] arm64: dts: qcom: Add device tree for Nord Ride board Shawn Guo
2026-08-10 11:07 ` [PATCH v10 6/6] arm64: dts: qcom: Add device tree for Nord RRD board Shawn Guo

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=anm1_dJl2QLmQcw4@QCOM-aGQu4IUr3Y \
    --to=shengchao.guo@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=brgl@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=deepti.jaggi@oss.qualcomm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=kuldeep.singh@oss.qualcomm.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mukesh.savaliya@oss.qualcomm.com \
    --cc=robh@kernel.org \
    --cc=yadu.mg@oss.qualcomm.com \
    /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.