* [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
* 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
* [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 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
Powered by JetHome