* [PATCH 0/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID
@ 2026-07-06 15:37 Stephan Gerhold
2026-07-06 15:37 ` [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform Stephan Gerhold
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Stephan Gerhold @ 2026-07-06 15:37 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier
Cc: Konrad Dybcio, Barnabás Czémán, linux-arm-msm,
linux-remoteproc, linux-kernel
Currently, trying to shutdown the modem firmware on MDM9607 results in the
following error:
qcom-q6v5-mss 4080000.remoteproc: timeout waiting for ssctl service
This is because qcom_q6v5_mss defines the wrong instance ID for the QMI
subsystem control service of the modem firmware. Make this configurable per
platform and fix the issue by defining the correct ssctl_id for MDM9607.
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
---
Stephan Gerhold (2):
remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform
remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID
drivers/remoteproc/qcom_q6v5_mss.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
---
base-commit: 8ca01dbc70b5856b8ad40f5178d6cbf13898896f
change-id: 20260706-qcom-q6v5-mss-mdm9607-ssctl-id-7d8bfee83fd6
Best regards,
--
Stephan Gerhold <stephan.gerhold@linaro.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform
2026-07-06 15:37 [PATCH 0/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
@ 2026-07-06 15:37 ` Stephan Gerhold
2026-07-06 16:00 ` Konrad Dybcio
` (2 more replies)
2026-07-06 15:37 ` [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
2026-07-10 18:07 ` [PATCH 0/2] " Bjorn Andersson
2 siblings, 3 replies; 9+ messages in thread
From: Stephan Gerhold @ 2026-07-06 15:37 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier
Cc: Konrad Dybcio, Barnabás Czémán, linux-arm-msm,
linux-remoteproc, linux-kernel
Currently, qcom_q6v5_mss hardcodes 0x12 as the instance ID for the
subsystem control (ssctl) QMI service. However, some platforms (e.g.
MDM9607) provide the service with a different instance ID (0x22).
Make it possible to override the ssctl_id per platform by adding it to the
platform-specific rproc_hexagon_res struct. The same pattern also exists
already inside qcom_q6v5_pas.
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
---
drivers/remoteproc/qcom_q6v5_mss.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c
index ae78f5c7c1b6..425601af50d1 100644
--- a/drivers/remoteproc/qcom_q6v5_mss.c
+++ b/drivers/remoteproc/qcom_q6v5_mss.c
@@ -162,6 +162,7 @@ struct rproc_hexagon_res {
char **active_clk_names;
char **proxy_pd_names;
int version;
+ int ssctl_id;
bool need_mem_protection;
bool need_pas_mem_setup;
bool has_alt_reset;
@@ -2191,7 +2192,7 @@ static int q6v5_probe(struct platform_device *pdev)
qcom_add_smd_subdev(rproc, &qproc->smd_subdev);
qcom_add_pdm_subdev(rproc, &qproc->pdm_subdev);
qcom_add_ssr_subdev(rproc, &qproc->ssr_subdev, "mpss");
- qproc->sysmon = qcom_add_sysmon_subdev(rproc, "modem", 0x12);
+ qproc->sysmon = qcom_add_sysmon_subdev(rproc, "modem", desc->ssctl_id);
if (IS_ERR(qproc->sysmon)) {
ret = PTR_ERR(qproc->sysmon);
goto remove_subdevs;
@@ -2271,6 +2272,7 @@ static const struct rproc_hexagon_res sc7180_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_SC7180,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res sc7280_mss = {
@@ -2301,6 +2303,7 @@ static const struct rproc_hexagon_res sc7280_mss = {
.has_ext_cntl_regs = true,
.has_vq6 = true,
.version = MSS_SC7280,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res sdm660_mss = {
@@ -2334,6 +2337,7 @@ static const struct rproc_hexagon_res sdm660_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_SDM660,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res sdm845_mss = {
@@ -2371,6 +2375,7 @@ static const struct rproc_hexagon_res sdm845_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_SDM845,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8998_mss = {
@@ -2404,6 +2409,7 @@ static const struct rproc_hexagon_res msm8998_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8998,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8996_mss = {
@@ -2444,6 +2450,7 @@ static const struct rproc_hexagon_res msm8996_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8996,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res mdm9607_mss = {
@@ -2479,6 +2486,7 @@ static const struct rproc_hexagon_res mdm9607_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MDM9607,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8909_mss = {
@@ -2515,6 +2523,7 @@ static const struct rproc_hexagon_res msm8909_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8909,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8916_mss = {
@@ -2562,6 +2571,7 @@ static const struct rproc_hexagon_res msm8916_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8916,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8917_mss = {
@@ -2606,6 +2616,7 @@ static const struct rproc_hexagon_res msm8917_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8917,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8937_mss = {
@@ -2650,6 +2661,7 @@ static const struct rproc_hexagon_res msm8937_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8937,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8940_mss = {
@@ -2694,6 +2706,7 @@ static const struct rproc_hexagon_res msm8940_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8940,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8953_mss = {
@@ -2731,6 +2744,7 @@ static const struct rproc_hexagon_res msm8953_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8953,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8974_mss = {
@@ -2785,6 +2799,7 @@ static const struct rproc_hexagon_res msm8974_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8974,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8226_mss = {
@@ -2824,6 +2839,7 @@ static const struct rproc_hexagon_res msm8226_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8226,
+ .ssctl_id = 0x12,
};
static const struct rproc_hexagon_res msm8926_mss = {
@@ -2871,6 +2887,7 @@ static const struct rproc_hexagon_res msm8926_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MSM8926,
+ .ssctl_id = 0x12,
};
static const struct of_device_id q6v5_of_match[] = {
--
2.54.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID
2026-07-06 15:37 [PATCH 0/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
2026-07-06 15:37 ` [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform Stephan Gerhold
@ 2026-07-06 15:37 ` Stephan Gerhold
2026-07-06 15:59 ` Konrad Dybcio
2026-07-06 16:56 ` Mukesh Ojha
2026-07-10 18:07 ` [PATCH 0/2] " Bjorn Andersson
2 siblings, 2 replies; 9+ messages in thread
From: Stephan Gerhold @ 2026-07-06 15:37 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier
Cc: Konrad Dybcio, Barnabás Czémán, linux-arm-msm,
linux-remoteproc, linux-kernel
On MDM9607, the modem firmware exposes the QMI subsystem control service
with instance ID 0x22 (34), as visible e.g. with qrtr-lookup:
$ qrtr-lookup
Service Version Instance Node Port
43 2 34 3 1 Subsystem control service
Currently, qcom_q6v5_mss uses ssctl_id 0x12 for all platforms. The QMI
service never shows up with this ID, leading to the following error when
trying to shutdown the modem:
qcom-q6v5-mss 4080000.remoteproc: timeout waiting for ssctl service
Set the correct ssctl_id to allow clean shutdown of the modem firmware with
the subsystem control service. ssctl_id 0x22 is also used by other
modem-only Qualcomm platforms in qcom_q6v5_pas, such as SDX55.
Fixes: 4fe236a1d024 ("remoteproc: qcom_q6v5_mss: Add MDM9607")
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
---
drivers/remoteproc/qcom_q6v5_mss.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/remoteproc/qcom_q6v5_mss.c b/drivers/remoteproc/qcom_q6v5_mss.c
index 425601af50d1..eb14308e7aef 100644
--- a/drivers/remoteproc/qcom_q6v5_mss.c
+++ b/drivers/remoteproc/qcom_q6v5_mss.c
@@ -2486,7 +2486,7 @@ static const struct rproc_hexagon_res mdm9607_mss = {
.has_ext_cntl_regs = false,
.has_vq6 = false,
.version = MSS_MDM9607,
- .ssctl_id = 0x12,
+ .ssctl_id = 0x22,
};
static const struct rproc_hexagon_res msm8909_mss = {
--
2.54.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID
2026-07-06 15:37 ` [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
@ 2026-07-06 15:59 ` Konrad Dybcio
2026-07-06 16:56 ` Mukesh Ojha
1 sibling, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-07-06 15:59 UTC (permalink / raw)
To: Stephan Gerhold, Bjorn Andersson, Mathieu Poirier
Cc: Barnabás Czémán, linux-arm-msm, linux-remoteproc,
linux-kernel
On 7/6/26 5:37 PM, Stephan Gerhold wrote:
> On MDM9607, the modem firmware exposes the QMI subsystem control service
> with instance ID 0x22 (34), as visible e.g. with qrtr-lookup:
>
> $ qrtr-lookup
> Service Version Instance Node Port
> 43 2 34 3 1 Subsystem control service
>
> Currently, qcom_q6v5_mss uses ssctl_id 0x12 for all platforms. The QMI
> service never shows up with this ID, leading to the following error when
> trying to shutdown the modem:
>
> qcom-q6v5-mss 4080000.remoteproc: timeout waiting for ssctl service
>
> Set the correct ssctl_id to allow clean shutdown of the modem firmware with
> the subsystem control service. ssctl_id 0x22 is also used by other
> modem-only Qualcomm platforms in qcom_q6v5_pas, such as SDX55.
>
> Fixes: 4fe236a1d024 ("remoteproc: qcom_q6v5_mss: Add MDM9607")
> Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
> ---
The downstream DT hasn't caught that.. but we can clearly see
otherwise in the output of the command you provided
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform
2026-07-06 15:37 ` [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform Stephan Gerhold
@ 2026-07-06 16:00 ` Konrad Dybcio
2026-07-06 16:53 ` Mukesh Ojha
2026-07-06 16:56 ` Dmitry Baryshkov
2 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-07-06 16:00 UTC (permalink / raw)
To: Stephan Gerhold, Bjorn Andersson, Mathieu Poirier
Cc: Barnabás Czémán, linux-arm-msm, linux-remoteproc,
linux-kernel
On 7/6/26 5:37 PM, Stephan Gerhold wrote:
> Currently, qcom_q6v5_mss hardcodes 0x12 as the instance ID for the
> subsystem control (ssctl) QMI service. However, some platforms (e.g.
> MDM9607) provide the service with a different instance ID (0x22).
>
> Make it possible to override the ssctl_id per platform by adding it to the
> platform-specific rproc_hexagon_res struct. The same pattern also exists
> already inside qcom_q6v5_pas.
>
> Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform
2026-07-06 15:37 ` [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform Stephan Gerhold
2026-07-06 16:00 ` Konrad Dybcio
@ 2026-07-06 16:53 ` Mukesh Ojha
2026-07-06 16:56 ` Dmitry Baryshkov
2 siblings, 0 replies; 9+ messages in thread
From: Mukesh Ojha @ 2026-07-06 16:53 UTC (permalink / raw)
To: Stephan Gerhold
Cc: Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
Barnabás Czémán, linux-arm-msm, linux-remoteproc,
linux-kernel
On Mon, Jul 06, 2026 at 05:37:16PM +0200, Stephan Gerhold wrote:
> Currently, qcom_q6v5_mss hardcodes 0x12 as the instance ID for the
> subsystem control (ssctl) QMI service. However, some platforms (e.g.
> MDM9607) provide the service with a different instance ID (0x22).
>
> Make it possible to override the ssctl_id per platform by adding it to the
> platform-specific rproc_hexagon_res struct. The same pattern also exists
> already inside qcom_q6v5_pas.
>
> Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Yes, 0x22 is for all the standalone solution while 0x12 for
integrated SoC.
Reviewed-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
--
-Mukesh Ojha
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform
2026-07-06 15:37 ` [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform Stephan Gerhold
2026-07-06 16:00 ` Konrad Dybcio
2026-07-06 16:53 ` Mukesh Ojha
@ 2026-07-06 16:56 ` Dmitry Baryshkov
2 siblings, 0 replies; 9+ messages in thread
From: Dmitry Baryshkov @ 2026-07-06 16:56 UTC (permalink / raw)
To: Stephan Gerhold
Cc: Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
Barnabás Czémán, linux-arm-msm, linux-remoteproc,
linux-kernel
On Mon, Jul 06, 2026 at 05:37:16PM +0200, Stephan Gerhold wrote:
> Currently, qcom_q6v5_mss hardcodes 0x12 as the instance ID for the
> subsystem control (ssctl) QMI service. However, some platforms (e.g.
> MDM9607) provide the service with a different instance ID (0x22).
>
> Make it possible to override the ssctl_id per platform by adding it to the
> platform-specific rproc_hexagon_res struct. The same pattern also exists
> already inside qcom_q6v5_pas.
>
> Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
> ---
> drivers/remoteproc/qcom_q6v5_mss.c | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID
2026-07-06 15:37 ` [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
2026-07-06 15:59 ` Konrad Dybcio
@ 2026-07-06 16:56 ` Mukesh Ojha
1 sibling, 0 replies; 9+ messages in thread
From: Mukesh Ojha @ 2026-07-06 16:56 UTC (permalink / raw)
To: Stephan Gerhold
Cc: Bjorn Andersson, Mathieu Poirier, Konrad Dybcio,
Barnabás Czémán, linux-arm-msm, linux-remoteproc,
linux-kernel
On Mon, Jul 06, 2026 at 05:37:17PM +0200, Stephan Gerhold wrote:
> On MDM9607, the modem firmware exposes the QMI subsystem control service
> with instance ID 0x22 (34), as visible e.g. with qrtr-lookup:
>
> $ qrtr-lookup
> Service Version Instance Node Port
> 43 2 34 3 1 Subsystem control service
>
> Currently, qcom_q6v5_mss uses ssctl_id 0x12 for all platforms. The QMI
> service never shows up with this ID, leading to the following error when
> trying to shutdown the modem:
>
> qcom-q6v5-mss 4080000.remoteproc: timeout waiting for ssctl service
>
> Set the correct ssctl_id to allow clean shutdown of the modem firmware with
> the subsystem control service. ssctl_id 0x22 is also used by other
> modem-only Qualcomm platforms in qcom_q6v5_pas, such as SDX55.
>
> Fixes: 4fe236a1d024 ("remoteproc: qcom_q6v5_mss: Add MDM9607")
> Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Reviewed-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
-Mukesh
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID
2026-07-06 15:37 [PATCH 0/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
2026-07-06 15:37 ` [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform Stephan Gerhold
2026-07-06 15:37 ` [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
@ 2026-07-10 18:07 ` Bjorn Andersson
2 siblings, 0 replies; 9+ messages in thread
From: Bjorn Andersson @ 2026-07-10 18:07 UTC (permalink / raw)
To: Mathieu Poirier, Stephan Gerhold
Cc: Konrad Dybcio, Barnabás Czémán, linux-arm-msm,
linux-remoteproc, linux-kernel
On Mon, 06 Jul 2026 17:37:15 +0200, Stephan Gerhold wrote:
> Currently, trying to shutdown the modem firmware on MDM9607 results in the
> following error:
>
> qcom-q6v5-mss 4080000.remoteproc: timeout waiting for ssctl service
>
> This is because qcom_q6v5_mss defines the wrong instance ID for the QMI
> subsystem control service of the modem firmware. Make this configurable per
> platform and fix the issue by defining the correct ssctl_id for MDM9607.
>
> [...]
Applied, thanks!
[1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform
commit: b19a43659ae4d34479ba2194961353827e659367
[2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID
commit: 4684c0491387814a2a7ebad55fc0f387dd4d4f69
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-07-10 18:07 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-06 15:37 [PATCH 0/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
2026-07-06 15:37 ` [PATCH 1/2] remoteproc: qcom_q6v5_mss: Make ssctl_id configurable per platform Stephan Gerhold
2026-07-06 16:00 ` Konrad Dybcio
2026-07-06 16:53 ` Mukesh Ojha
2026-07-06 16:56 ` Dmitry Baryshkov
2026-07-06 15:37 ` [PATCH 2/2] remoteproc: qcom_q6v5_mss: Fix MDM9607 subsystem control instance ID Stephan Gerhold
2026-07-06 15:59 ` Konrad Dybcio
2026-07-06 16:56 ` Mukesh Ojha
2026-07-10 18:07 ` [PATCH 0/2] " Bjorn Andersson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox