Some Qualcomm SoCs group multiple remote processors into a cluster (e.g. Nord's ADSP0/1/2, which share HPASS-domain PLLs, AG_NOC, RSCp and other resources owned by ADSP0). Firmware on these clusters cannot tolerate the peer-shutdown notifications that qcom_sysmon and qcom_glink_ssr send between independently started/stopped remote processors.
Add an opaque cluster identifier to struct rproc so that those notification paths, which live in different subsystems (remoteproc and rpmsg), can recognize siblings in the same cluster and suppress notifications between them, without introducing a module dependency between the two subsystems. Assisted-by: LLM Signed-off-by: Shawn Guo <[email protected]> --- include/linux/remoteproc.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h index a44368737b39..53e56d53641e 100644 --- a/include/linux/remoteproc.h +++ b/include/linux/remoteproc.h @@ -254,6 +254,8 @@ enum rproc_features { * @cdev: character device of the rproc * @cdev_put_on_release: flag to indicate if remoteproc should be shutdown on @char_dev release * @features: indicate remoteproc features + * @cluster: opaque identifier shared by remoteprocs whose SSR notifications + * should be coalesced (set by the owning rproc driver), or NULL */ struct rproc { struct list_head node; @@ -299,6 +301,7 @@ struct rproc { struct cdev cdev; bool cdev_put_on_release; DECLARE_BITMAP(features, RPROC_MAX_FEATURES); + void *cluster; }; /** -- 2.43.0

