mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/4] Switch Nord CDSPs onto NMXC power domain
@ 2026-08-26 10:27 Shawn Guo
  2026-08-26 10:27 ` [PATCH 1/4] dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index Shawn Guo
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Shawn Guo @ 2026-08-26 10:27 UTC (permalink / raw)
  To: Ulf Hansson, Bjorn Andersson
  Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel, Shawn Guo

The Nord CDSP subsystems do not take their memory rail from the shared
MX rail like all other Qualcomm SoCs, but from a dedicated NMXC RPMh
resource. Nord's initial PAS support was merged with "mx" in the proxy
power domain list, which leaves CDSPs relying on other components to
vote on NMXC rail.

The first two pmdomain patches add the NMXC domain index and register
the nmxc.lvl resource in the Nord rpmhpd table. The other two remoteproc
patches correct the Nord PAS binding and driver to name "nmxc" instead of
"mx" for CDSPs, so that the right rail is held during PAS authentication
and boot.

The pmdomain and remoteproc changes can be applied independently -- only
the power domain name string changes on the remoteproc side, so there is
no build dependency between the two halves. I send them as one series to
demonstrate this is fixing "one problem". I can split if needed.

There is no ABI concern: no in-tree device tree references the Nord CDSPs
yet.

Anurag Pateriya (3):
  dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index
  pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord
  remoteproc: qcom: pas: Switch Nord CDSPs from MX to NMXC

Shawn Guo (1):
  dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail

 .../bindings/remoteproc/qcom,nord-pas.yaml    | 28 +++++++++++--------
 drivers/pmdomain/qcom/rpmhpd.c                |  6 ++++
 drivers/remoteproc/qcom_q6v5_pas.c            |  8 +++---
 include/dt-bindings/power/qcom,rpmhpd.h       |  1 +
 4 files changed, 27 insertions(+), 16 deletions(-)

-- 
2.43.0


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

* [PATCH 1/4] dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index
  2026-08-26 10:27 [PATCH 0/4] Switch Nord CDSPs onto NMXC power domain Shawn Guo
@ 2026-08-26 10:27 ` Shawn Guo
  2026-08-28 10:19   ` Krzysztof Kozlowski
  2026-08-26 10:27 ` [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord Shawn Guo
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 15+ messages in thread
From: Shawn Guo @ 2026-08-26 10:27 UTC (permalink / raw)
  To: Ulf Hansson, Bjorn Andersson
  Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel, Shawn Guo

From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>

Nord routes the NSP (compute DSP) memory rail through a dedicated NMXC
resource instead of the shared MX rail. Add the index so device trees can
reference it.

Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 include/dt-bindings/power/qcom,rpmhpd.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/dt-bindings/power/qcom,rpmhpd.h b/include/dt-bindings/power/qcom,rpmhpd.h
index 07bd2a7b0150..92c8408dbc57 100644
--- a/include/dt-bindings/power/qcom,rpmhpd.h
+++ b/include/dt-bindings/power/qcom,rpmhpd.h
@@ -32,6 +32,7 @@
 #define RPMHPD_GBX		22
 #define RPMHPD_NSP3		23
 #define RPMHPD_GFX1		24
+#define RPMHPD_NMXC		25
 
 /* RPMh Power Domain performance levels */
 #define RPMH_REGULATOR_LEVEL_RETENTION		16
-- 
2.43.0


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

* [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord
  2026-08-26 10:27 [PATCH 0/4] Switch Nord CDSPs onto NMXC power domain Shawn Guo
  2026-08-26 10:27 ` [PATCH 1/4] dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index Shawn Guo
@ 2026-08-26 10:27 ` Shawn Guo
  2026-08-26 11:05   ` Abel Vesa
  2026-08-26 13:04   ` Konrad Dybcio
  2026-08-26 10:27 ` [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail Shawn Guo
  2026-08-26 10:27 ` [PATCH 4/4] remoteproc: qcom: pas: Switch Nord CDSPs from MX to NMXC Shawn Guo
  3 siblings, 2 replies; 15+ messages in thread
From: Shawn Guo @ 2026-08-26 10:27 UTC (permalink / raw)
  To: Ulf Hansson, Bjorn Andersson
  Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel, Shawn Guo

From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>

Add the nmxc.lvl RPMh resource and register it in the Nord power domain
table. Nord supplies the NSP memory rail from this dedicated resource
rather than from the shared MX rail, so consumers need it exposed as its
own power domain.

Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 drivers/pmdomain/qcom/rpmhpd.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/pmdomain/qcom/rpmhpd.c b/drivers/pmdomain/qcom/rpmhpd.c
index 96e4bd2f5a14..717c44d1c39a 100644
--- a/drivers/pmdomain/qcom/rpmhpd.c
+++ b/drivers/pmdomain/qcom/rpmhpd.c
@@ -198,6 +198,11 @@ static struct rpmhpd mxc_ao = {
 	.res_name = "mxc.lvl",
 };
 
+static struct rpmhpd nmxc = {
+	.pd = { .name = "nmxc", },
+	.res_name = "nmxc.lvl",
+};
+
 static struct rpmhpd nsp = {
 	.pd = { .name = "nsp", },
 	.res_name = "nsp.lvl",
@@ -331,6 +336,7 @@ static struct rpmhpd *nord_rpmhpds[] = {
 	[RPMHPD_MX_AO] = &mx_ao,
 	[RPMHPD_MXC] = &mxc,
 	[RPMHPD_MXC_AO] = &mxc_ao,
+	[RPMHPD_NMXC] = &nmxc,
 	[RPMHPD_NSP0] = &nsp0,
 	[RPMHPD_NSP1] = &nsp1,
 	[RPMHPD_NSP2] = &nsp2,
-- 
2.43.0


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

* [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail
  2026-08-26 10:27 [PATCH 0/4] Switch Nord CDSPs onto NMXC power domain Shawn Guo
  2026-08-26 10:27 ` [PATCH 1/4] dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index Shawn Guo
  2026-08-26 10:27 ` [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord Shawn Guo
@ 2026-08-26 10:27 ` Shawn Guo
  2026-08-26 12:52   ` Konrad Dybcio
  2026-08-28 10:23   ` Krzysztof Kozlowski
  2026-08-26 10:27 ` [PATCH 4/4] remoteproc: qcom: pas: Switch Nord CDSPs from MX to NMXC Shawn Guo
  3 siblings, 2 replies; 15+ messages in thread
From: Shawn Guo @ 2026-08-26 10:27 UTC (permalink / raw)
  To: Ulf Hansson, Bjorn Andersson
  Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel, Shawn Guo

Nord supplies the CDSP memory rail from a dedicated NMXC RPMh resource
instead of the shared MX rail, so the CDSPs have to reference "nmxc"
rather than "mx" as their second proxy power domain.

That makes the ADSP and CDSP name lists diverge at the second entry, so a
single top-level 'items' list can no longer describe both. Keep only the
item count at the top level and move the per-domain descriptions into the
respective branches of the existing conditional.

Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 .../bindings/remoteproc/qcom,nord-pas.yaml    | 28 +++++++++++--------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
index e90d2953ba69..b09b51f26afe 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,nord-pas.yaml
@@ -24,17 +24,11 @@ properties:
 
   power-domains:
     minItems: 2
-    items:
-      - description: CX power domain
-      - description: MX power domain
-      - description: NSP power domain
+    maxItems: 3
 
   power-domain-names:
     minItems: 2
-    items:
-      - const: cx
-      - const: mx
-      - const: nsp
+    maxItems: 3
 
   reg:
     maxItems: 1
@@ -104,15 +98,25 @@ allOf:
     then:
       properties:
         power-domains:
-          maxItems: 2
+          items:
+            - description: CX power domain
+            - description: MX power domain
         power-domain-names:
-          maxItems: 2
+          items:
+            - const: cx
+            - const: mx
     else:
       properties:
         power-domains:
-          minItems: 3
+          items:
+            - description: CX power domain
+            - description: NMXC power domain
+            - description: NSP power domain
         power-domain-names:
-          minItems: 3
+          items:
+            - const: cx
+            - const: nmxc
+            - const: nsp
 
 unevaluatedProperties: false
 
-- 
2.43.0


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

* [PATCH 4/4] remoteproc: qcom: pas: Switch Nord CDSPs from MX to NMXC
  2026-08-26 10:27 [PATCH 0/4] Switch Nord CDSPs onto NMXC power domain Shawn Guo
                   ` (2 preceding siblings ...)
  2026-08-26 10:27 ` [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail Shawn Guo
@ 2026-08-26 10:27 ` Shawn Guo
  2026-08-26 11:06   ` Abel Vesa
  3 siblings, 1 reply; 15+ messages in thread
From: Shawn Guo @ 2026-08-26 10:27 UTC (permalink / raw)
  To: Ulf Hansson, Bjorn Andersson
  Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel, Shawn Guo

From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>

The Nord CDSP subsystems keep their memory rail on the dedicated NMXC
resource, not on the shared MX rail. Replace "mx" with "nmxc" in the proxy
power domain list of all four CDSP resources so the correct rail is held
during PAS authentication and boot.

Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
---
 drivers/remoteproc/qcom_q6v5_pas.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index ca8e61254c44..5dd954b57852 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1469,7 +1469,7 @@ static const struct qcom_pas_data nord_cdsp0_resource = {
 	.auto_boot = true,
 	.proxy_pd_names = (char*[]){
 		"cx",
-		"mx",
+		"nmxc",
 		"nsp",
 		NULL
 	},
@@ -1490,7 +1490,7 @@ static const struct qcom_pas_data nord_cdsp1_resource = {
 	.auto_boot = true,
 	.proxy_pd_names = (char*[]){
 		"cx",
-		"mx",
+		"nmxc",
 		"nsp",
 		NULL
 	},
@@ -1511,7 +1511,7 @@ static const struct qcom_pas_data nord_cdsp2_resource = {
 	.auto_boot = true,
 	.proxy_pd_names = (char*[]){
 		"cx",
-		"mx",
+		"nmxc",
 		"nsp",
 		NULL
 	},
@@ -1532,7 +1532,7 @@ static const struct qcom_pas_data nord_cdsp3_resource = {
 	.auto_boot = true,
 	.proxy_pd_names = (char*[]){
 		"cx",
-		"mx",
+		"nmxc",
 		"nsp",
 		NULL
 	},
-- 
2.43.0


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

* Re: [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord
  2026-08-26 10:27 ` [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord Shawn Guo
@ 2026-08-26 11:05   ` Abel Vesa
  2026-08-26 13:04   ` Konrad Dybcio
  1 sibling, 0 replies; 15+ messages in thread
From: Abel Vesa @ 2026-08-26 11:05 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
	Dmitry Baryshkov, Bartosz Golaszewski, Anurag Pateriya,
	linux-arm-msm, linux-remoteproc, devicetree, linux-pm,
	linux-kernel

On 26-08-26 18:27:44, Shawn Guo wrote:
> From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> 
> Add the nmxc.lvl RPMh resource and register it in the Nord power domain
> table. Nord supplies the NSP memory rail from this dedicated resource
> rather than from the shared MX rail, so consumers need it exposed as its
> own power domain.
> 
> Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>

Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>

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

* Re: [PATCH 4/4] remoteproc: qcom: pas: Switch Nord CDSPs from MX to NMXC
  2026-08-26 10:27 ` [PATCH 4/4] remoteproc: qcom: pas: Switch Nord CDSPs from MX to NMXC Shawn Guo
@ 2026-08-26 11:06   ` Abel Vesa
  0 siblings, 0 replies; 15+ messages in thread
From: Abel Vesa @ 2026-08-26 11:06 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
	Dmitry Baryshkov, Bartosz Golaszewski, Anurag Pateriya,
	linux-arm-msm, linux-remoteproc, devicetree, linux-pm,
	linux-kernel

On 26-08-26 18:27:46, Shawn Guo wrote:
> From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> 
> The Nord CDSP subsystems keep their memory rail on the dedicated NMXC
> resource, not on the shared MX rail. Replace "mx" with "nmxc" in the proxy
> power domain list of all four CDSP resources so the correct rail is held
> during PAS authentication and boot.
> 
> Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>

Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>

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

* Re: [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail
  2026-08-26 10:27 ` [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail Shawn Guo
@ 2026-08-26 12:52   ` Konrad Dybcio
  2026-08-26 13:31     ` Shawn Guo
  2026-08-28 10:23   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 15+ messages in thread
From: Konrad Dybcio @ 2026-08-26 12:52 UTC (permalink / raw)
  To: Shawn Guo, Ulf Hansson, Bjorn Andersson
  Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel

On 8/26/26 12:27 PM, Shawn Guo wrote:
> Nord supplies the CDSP memory rail from a dedicated NMXC RPMh resource
> instead of the shared MX rail, so the CDSPs have to reference "nmxc"
> rather than "mx" as their second proxy power domain.
> 
> That makes the ADSP and CDSP name lists diverge at the second entry, so a
> single top-level 'items' list can no longer describe both. Keep only the
> item count at the top level and move the per-domain descriptions into the
> respective branches of the existing conditional.
> 
> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
> ---

Is the name of the input not "mx" at the rproc anyway?

Konrad

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

* Re: [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord
  2026-08-26 10:27 ` [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord Shawn Guo
  2026-08-26 11:05   ` Abel Vesa
@ 2026-08-26 13:04   ` Konrad Dybcio
  2026-08-26 13:14     ` Shawn Guo
  1 sibling, 1 reply; 15+ messages in thread
From: Konrad Dybcio @ 2026-08-26 13:04 UTC (permalink / raw)
  To: Shawn Guo, Ulf Hansson, Bjorn Andersson
  Cc: Mathieu Poirier, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel

On 8/26/26 12:27 PM, Shawn Guo wrote:
> From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> 
> Add the nmxc.lvl RPMh resource and register it in the Nord power domain
> table. Nord supplies the NSP memory rail from this dedicated resource
> rather than from the shared MX rail, so consumers need it exposed as its
> own power domain.
> 
> Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
> ---
>  drivers/pmdomain/qcom/rpmhpd.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/pmdomain/qcom/rpmhpd.c b/drivers/pmdomain/qcom/rpmhpd.c
> index 96e4bd2f5a14..717c44d1c39a 100644
> --- a/drivers/pmdomain/qcom/rpmhpd.c
> +++ b/drivers/pmdomain/qcom/rpmhpd.c
> @@ -198,6 +198,11 @@ static struct rpmhpd mxc_ao = {
>  	.res_name = "mxc.lvl",
>  };
>  
> +static struct rpmhpd nmxc = {
> +	.pd = { .name = "nmxc", },
> +	.res_name = "nmxc.lvl",

The commandDB sources suggest this shouls be nspmxc.lvl instead..

Can you dump /sys/kernel/debug/cmd-db?

Konrad

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

* Re: [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord
  2026-08-26 13:04   ` Konrad Dybcio
@ 2026-08-26 13:14     ` Shawn Guo
  2026-08-26 13:17       ` Konrad Dybcio
  0 siblings, 1 reply; 15+ messages in thread
From: Shawn Guo @ 2026-08-26 13:14 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Abel Vesa,
	Bartosz Golaszewski, Anurag Pateriya, linux-arm-msm,
	linux-remoteproc, devicetree, linux-pm, linux-kernel

On Wed, Aug 26, 2026 at 03:04:33PM +0200, Konrad Dybcio wrote:
> On 8/26/26 12:27 PM, Shawn Guo wrote:
> > From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> > 
> > Add the nmxc.lvl RPMh resource and register it in the Nord power domain
> > table. Nord supplies the NSP memory rail from this dedicated resource
> > rather than from the shared MX rail, so consumers need it exposed as its
> > own power domain.
> > 
> > Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> > Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
> > ---
> >  drivers/pmdomain/qcom/rpmhpd.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/drivers/pmdomain/qcom/rpmhpd.c b/drivers/pmdomain/qcom/rpmhpd.c
> > index 96e4bd2f5a14..717c44d1c39a 100644
> > --- a/drivers/pmdomain/qcom/rpmhpd.c
> > +++ b/drivers/pmdomain/qcom/rpmhpd.c
> > @@ -198,6 +198,11 @@ static struct rpmhpd mxc_ao = {
> >  	.res_name = "mxc.lvl",
> >  };
> >  
> > +static struct rpmhpd nmxc = {
> > +	.pd = { .name = "nmxc", },
> > +	.res_name = "nmxc.lvl",
> 
> The commandDB sources suggest this shouls be nspmxc.lvl instead..
> 
> Can you dump /sys/kernel/debug/cmd-db?

root@qcom-armv8a:~# cat /sys/kernel/debug/cmd-db
Command DB DUMP
Slave ARC (v16.0)
-------------------------
0x30000: cx.lvl [00 00 10 00 10 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30004: cx.tmr
0x30010: mx.lvl [00 00 10 00 c0 00 00 01 80 01 a0 01 b0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30014: mx.tmr
0x30020: ebi.lvl [00 00 10 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30024: ebi.tmr
0x30030: gfx.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 b0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30034: gfx.tmr
0x30040: ddr.lvl [00 00 20 00 80 00 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30044: ddr.tmr
0x30050: mmcx.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30054: mmcx.tmr
0x30060: nsp0.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30064: nsp0.tmr
0x30070: mxc.lvl [00 00 10 00 c0 00 00 01 80 01 a0 01 b0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30074: mxc.tmr
0x30080: nsp1.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30084: nsp1.tmr
0x30090: nsp2.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x30094: nsp2.tmr
0x300a0: nsp3.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x300a4: nsp3.tmr
0x300b0: nmxc.lvl [00 00 10 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x300b4: nmxc.tmr
0x300c0: gic.lvl [00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x300c4: gic.tmr
0x300d0: ds.lvl [00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x300d4: ds.tmr
0x300e0: gfx1.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x300e4: gfx1.tmr
0x300f0: xo.lvl [00 00 20 00 50 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
0x300f4: xo.tmr
Slave ARC (v16.0)
-------------------------
0x00000: cx.mol [80 00]
0x00000: mx.mol [c0 00]
0x00000: ebi.mol [c0 00]
0x00000: gfx.mol [80 00]
0x00000: ddr.mol [a0 00]
0x00000: mmcx.mol [80 00]
0x00000: nsp0.mol [80 00]
0x00000: mxc.mol [c0 00]
0x00000: nsp1.mol [80 00]
0x00000: nsp2.mol [80 00]
0x00000: nsp3.mol [80 00]
0x00000: nmxc.mol [c0 00]
0x00000: gic.mol [20 00]
0x00000: ds.mol [20 00]
0x00000: gfx1.mol [80 00]
0x00000: xo.mol [80 00]
Slave BCM (v16.0)
-------------------------
0x50000: MC0 [40 d0 1b 01 40 00 00 00]
0x50094: MC1 [40 d0 1b 01 40 00 00 00]
0x5009c: MC2 [40 d0 1b 01 40 00 00 00]
0x50080: MC3 [40 d0 1b 01 40 00 00 00]
0x50004: SH0 [c0 ea 21 01 00 01 01 00]
0x50008: SH1 [c0 ea 21 01 00 01 01 00]
0x50098: SH2 [c0 ea 21 01 00 01 01 00]
0x50084: SH3 [c0 ea 21 01 00 01 01 00]
0x50010: SN0 [10 e4 1f 00 40 00 03 00]
0x50014: SN1 [10 e4 1f 00 40 00 03 00]
0x50018: SN2 [10 e4 1f 00 10 00 03 00]
0x5001c: SN3 [10 e4 1f 00 10 00 03 00]
0x50024: SN4 [10 e4 1f 00 10 00 03 00]
0x50028: MM0 [b0 db 23 00 40 00 04 00]
0x5002c: MM1 [b0 db 23 00 40 00 04 00]
0x50030: CN0 [e0 22 02 00 04 00 05 00]
0x50034: CN1 [e0 22 02 00 04 00 05 00]
0x50038: CE0 [fc 5c 00 00 08 00 06 00]
0x50070: CE1 [fc 5c 00 00 08 00 06 00]
0x50074: CE2 [fc 5c 00 00 08 00 06 00]
0x5003c: IP0 [28 00 00 00 08 00 07 00]
0x50040: QUP0 [14 00 00 00 04 00 08 00]
0x50044: QUP1 [14 00 00 00 04 00 08 00]
0x50048: QUP2 [14 00 00 00 04 00 08 00]
0x50068: QUP3 [14 00 00 00 04 00 08 00]
0x5004c: C0N0 [60 b7 47 00 40 00 09 00]
0x50050: C1N0 [60 b7 47 00 40 00 0a 00]
0x50054: C2N0 [60 b7 47 00 40 00 0b 00]
0x50058: C3N0 [60 b7 47 00 40 00 0c 00]
0x5005c: CP0 [30 75 00 00 04 00 0d 00]
0x50060: DCP0 [30 75 00 00 04 00 0e 00]
0x50064: DTP0 [80 38 01 00 04 00 0f 00]
0x5006c: ALC [01 00 00 00 00 00 11 00]
0x50088: ACV [01 00 00 00 00 00 12 00]
Slave VRM (v1.0)
-------------------------
0x4d000: vrm.aoss [03 da 00 00]
0x4d004: vrm.ds [03 da 00 00]
0x40200: S1A_E0 [01 0b 00 00]
0x40300: S3A_E0 [01 0d 00 00]
0x40000: S5A_E0 [01 11 00 00]
0x40400: S6A_E0 [01 13 00 00]
0x40500: S8A_E0 [01 17 00 00]
0x40500: vrm.ebi [01 17 00 00]
0x40600: L4A_E0 [01 49 00 00]
0x40700: L6A_E0 [01 4b 00 00]
0x40800: L7A_E0 [01 4c 00 00]
0x40b00: L8A_E0 [01 4d 00 00]
0x4a000: C1A_E0 [02 69 00 00]
0x4a000: vrm.xob [02 69 00 00]
0x4a100: C2A_E0 [02 6a 00 00]
0x4a100: lnbclka2 [02 6a 00 00]
0x4a200: C3A_E0 [02 6b 00 00]
0x4a200: lnbclka3 [02 6b 00 00]
0x4a300: C4A_E0 [02 6c 00 00]
0x4a300: divclka1 [02 6c 00 00]
0x40c00: S1E_E0 [01 1b 00 00]
0x40c00: vrm.nsp3 [01 1b 00 00]
0x40d00: S7E_E0 [01 1d 00 00]
0x40d00: vrm.mx [01 1d 00 00]
0x40e00: L1E_E0 [01 4f 00 00]
0x40f00: L2E_E0 [01 50 00 00]
0x41600: L3E_E0 [01 51 00 00]
0x41700: S1F_E0 [01 1f 00 00]
0x41700: vrm.nsp1 [01 1f 00 00]
0x40100: S7F_E0 [01 21 00 00]
0x41800: S8F_E0 [01 23 00 00]
0x41000: L1F_E0 [01 52 00 00]
0x41900: L3F_E0 [01 54 00 00]
0x41a00: S1G_E0 [01 25 00 00]
0x41a00: vrm.nsp0 [01 25 00 00]
0x41b00: S5G_E0 [01 27 00 00]
0x41100: L2G_E0 [01 56 00 00]
0x41c00: S1H_E0 [01 2b 00 00]
0x41c00: vrm.nsp2 [01 2b 00 00]
0x41d00: S5H_E0 [01 2d 00 00]
0x41d00: vrm.mxc [01 2d 00 00]
0x41200: L1H_E0 [01 58 00 00]
0x40900: L2H_E0 [01 59 00 00]
0x41e00: S2I_E0 [01 31 00 00]
0x41e00: vrm.gfx [01 31 00 00]
0x41f00: S7I_E0 [01 00 00 00]
0x41f00: vrm.mmcx [01 00 00 00]
0x41300: L1I_E0 [01 5b 00 00]
0x40a00: L2I_E0 [01 5c 00 00]
0x42000: L3I_E0 [01 5d 00 00]
0x42100: S7J_E0 [01 00 00 00]
0x42100: vrm.gfx1 [01 00 00 00]
0x41400: L1K_E0 [01 61 00 00]
0x41500: L2K_E0 [01 62 00 00]
0x42200: L3K_E0 [01 63 00 00]
0x42300: S1L_E0 [01 00 00 00]
0x42300: vrm.nmxc [01 00 00 00]
0x42400: S2L_E0 [01 45 00 00]
0x42400: vrm.cx [01 45 00 00]
0x42500: L3L_E0 [01 66 00 00]
0x4a400: vrm.sail [02 67 00 00]

Shawn

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

* Re: [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord
  2026-08-26 13:14     ` Shawn Guo
@ 2026-08-26 13:17       ` Konrad Dybcio
  0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2026-08-26 13:17 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Abel Vesa,
	Bartosz Golaszewski, Anurag Pateriya, linux-arm-msm,
	linux-remoteproc, devicetree, linux-pm, linux-kernel

On 8/26/26 3:14 PM, Shawn Guo wrote:
> On Wed, Aug 26, 2026 at 03:04:33PM +0200, Konrad Dybcio wrote:
>> On 8/26/26 12:27 PM, Shawn Guo wrote:
>>> From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
>>>
>>> Add the nmxc.lvl RPMh resource and register it in the Nord power domain
>>> table. Nord supplies the NSP memory rail from this dedicated resource
>>> rather than from the shared MX rail, so consumers need it exposed as its
>>> own power domain.
>>>
>>> Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
>>> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
>>> ---
>>>  drivers/pmdomain/qcom/rpmhpd.c | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/pmdomain/qcom/rpmhpd.c b/drivers/pmdomain/qcom/rpmhpd.c
>>> index 96e4bd2f5a14..717c44d1c39a 100644
>>> --- a/drivers/pmdomain/qcom/rpmhpd.c
>>> +++ b/drivers/pmdomain/qcom/rpmhpd.c
>>> @@ -198,6 +198,11 @@ static struct rpmhpd mxc_ao = {
>>>  	.res_name = "mxc.lvl",
>>>  };
>>>  
>>> +static struct rpmhpd nmxc = {
>>> +	.pd = { .name = "nmxc", },
>>> +	.res_name = "nmxc.lvl",
>>
>> The commandDB sources suggest this shouls be nspmxc.lvl instead..
>>
>> Can you dump /sys/kernel/debug/cmd-db?
> 
> root@qcom-armv8a:~# cat /sys/kernel/debug/cmd-db

[...]

> 0x300a0: nsp3.lvl [00 00 01 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
> 0x300a4: nsp3.tmr
> 0x300b0: nmxc.lvl [00 00 10 00 c0 00 00 01 80 01 a0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
> 0x300b4: nmxc.tmr

Alright then

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

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

* Re: [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail
  2026-08-26 12:52   ` Konrad Dybcio
@ 2026-08-26 13:31     ` Shawn Guo
  0 siblings, 0 replies; 15+ messages in thread
From: Shawn Guo @ 2026-08-26 13:31 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov, Abel Vesa,
	Bartosz Golaszewski, Anurag Pateriya, linux-arm-msm,
	linux-remoteproc, devicetree, linux-pm, linux-kernel

On Wed, Aug 26, 2026 at 02:52:55PM +0200, Konrad Dybcio wrote:
> On 8/26/26 12:27 PM, Shawn Guo wrote:
> > Nord supplies the CDSP memory rail from a dedicated NMXC RPMh resource
> > instead of the shared MX rail, so the CDSPs have to reference "nmxc"
> > rather than "mx" as their second proxy power domain.
> > 
> > That makes the ADSP and CDSP name lists diverge at the second entry, so a
> > single top-level 'items' list can no longer describe both. Keep only the
> > item count at the top level and move the per-domain descriptions into the
> > respective branches of the existing conditional.
> > 
> > Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
> > ---
> 
> Is the name of the input not "mx" at the rproc anyway?

Ah, good point! We only need to wire RPMHPD_NMXC up to "mx" in DT.
Thank you for the comment, Konrad!

Shawn

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

* Re: [PATCH 1/4] dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index
  2026-08-26 10:27 ` [PATCH 1/4] dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index Shawn Guo
@ 2026-08-28 10:19   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-28 10:19 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
	Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel

On Wed, Aug 26, 2026 at 06:27:43PM +0800, Shawn Guo wrote:
> From: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> 
> Nord routes the NSP (compute DSP) memory rail through a dedicated NMXC
> resource instead of the shared MX rail. Add the index so device trees can
> reference it.
> 
> Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
> Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
> ---
>  include/dt-bindings/power/qcom,rpmhpd.h | 1 +
>  1 file changed, 1 insertion(+)

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


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

* Re: [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail
  2026-08-26 10:27 ` [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail Shawn Guo
  2026-08-26 12:52   ` Konrad Dybcio
@ 2026-08-28 10:23   ` Krzysztof Kozlowski
  2026-08-30  3:20     ` Shawn Guo
  1 sibling, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-28 10:23 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
	Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel

On Wed, Aug 26, 2026 at 06:27:45PM +0800, Shawn Guo wrote:
>    power-domain-names:
>      minItems: 2
> -    items:
> -      - const: cx
> -      - const: mx
> -      - const: nsp
> +    maxItems: 3
>  
>    reg:
>      maxItems: 1
> @@ -104,15 +98,25 @@ allOf:
>      then:
>        properties:
>          power-domains:
> -          maxItems: 2
> +          items:
> +            - description: CX power domain
> +            - description: MX power domain
>          power-domain-names:
> -          maxItems: 2
> +          items:
> +            - const: cx
> +            - const: mx
>      else:
>        properties:
>          power-domains:
> -          minItems: 3
> +          items:
> +            - description: CX power domain
> +            - description: NMXC power domain
> +            - description: NSP power domain
>          power-domain-names:
> -          minItems: 3
> +          items:
> +            - const: cx
> +            - const: nmxc

That's the same domain from this device point of view, no? The names are
not representing provider but consumer.

Best regards,
Krzysztof


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

* Re: [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail
  2026-08-28 10:23   ` Krzysztof Kozlowski
@ 2026-08-30  3:20     ` Shawn Guo
  0 siblings, 0 replies; 15+ messages in thread
From: Shawn Guo @ 2026-08-30  3:20 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Ulf Hansson, Bjorn Andersson, Mathieu Poirier, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
	Dmitry Baryshkov, Abel Vesa, Bartosz Golaszewski,
	Anurag Pateriya, linux-arm-msm, linux-remoteproc, devicetree,
	linux-pm, linux-kernel

On Fri, Aug 28, 2026 at 12:23:42PM +0200, Krzysztof Kozlowski wrote:
> On Wed, Aug 26, 2026 at 06:27:45PM +0800, Shawn Guo wrote:
> >    power-domain-names:
> >      minItems: 2
> > -    items:
> > -      - const: cx
> > -      - const: mx
> > -      - const: nsp
> > +    maxItems: 3
> >  
> >    reg:
> >      maxItems: 1
> > @@ -104,15 +98,25 @@ allOf:
> >      then:
> >        properties:
> >          power-domains:
> > -          maxItems: 2
> > +          items:
> > +            - description: CX power domain
> > +            - description: MX power domain
> >          power-domain-names:
> > -          maxItems: 2
> > +          items:
> > +            - const: cx
> > +            - const: mx
> >      else:
> >        properties:
> >          power-domains:
> > -          minItems: 3
> > +          items:
> > +            - description: CX power domain
> > +            - description: NMXC power domain
> > +            - description: NSP power domain
> >          power-domain-names:
> > -          minItems: 3
> > +          items:
> > +            - const: cx
> > +            - const: nmxc
> 
> That's the same domain from this device point of view, no? The names are
> not representing provider but consumer.

Yes, you are right! The v2[1] was sent to drop the remoteproc changes.

Shawn

[1] https://lore.kernel.org/all/20260826135454.658615-1-shengchao.guo@oss.qualcomm.com/

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

end of thread, other threads:[~2026-08-30  3:20 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-26 10:27 [PATCH 0/4] Switch Nord CDSPs onto NMXC power domain Shawn Guo
2026-08-26 10:27 ` [PATCH 1/4] dt-bindings: power: qcom,rpmhpd: Add NMXC power domain index Shawn Guo
2026-08-28 10:19   ` Krzysztof Kozlowski
2026-08-26 10:27 ` [PATCH 2/4] pmdomain: qcom: rpmhpd: Add NMXC power domain for Nord Shawn Guo
2026-08-26 11:05   ` Abel Vesa
2026-08-26 13:04   ` Konrad Dybcio
2026-08-26 13:14     ` Shawn Guo
2026-08-26 13:17       ` Konrad Dybcio
2026-08-26 10:27 ` [PATCH 3/4] dt-bindings: remoteproc: qcom,nord-pas: Switch CDSPs to NMXC rail Shawn Guo
2026-08-26 12:52   ` Konrad Dybcio
2026-08-26 13:31     ` Shawn Guo
2026-08-28 10:23   ` Krzysztof Kozlowski
2026-08-30  3:20     ` Shawn Guo
2026-08-26 10:27 ` [PATCH 4/4] remoteproc: qcom: pas: Switch Nord CDSPs from MX to NMXC Shawn Guo
2026-08-26 11:06   ` Abel Vesa

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®