On Sun, Dec 28, 2025 at 03:21:56PM +0100, Barnabás Czémán wrote: > Add support for MSM8937 MSS it similar to MSM8917 MSS. > It differs primarily in that TZ needs to be informed of > the modem start address and pas_id. > > Signed-off-by: Barnabás Czémán <[email protected]> > --- > drivers/remoteproc/qcom_q6v5_mss.c | 49 > +++++++++++++++++++++++++++++++++++--- > 1 file changed, 46 insertions(+), 3 deletions(-) > > diff --git a/drivers/remoteproc/qcom_q6v5_mss.c > b/drivers/remoteproc/qcom_q6v5_mss.c > index 2579558fb567..2ffcea7dbc79 100644 > --- a/drivers/remoteproc/qcom_q6v5_mss.c > +++ b/drivers/remoteproc/qcom_q6v5_mss.c > @@ -261,6 +261,7 @@ enum { > MSS_MSM8916, > MSS_MSM8917, > MSS_MSM8926, > + MSS_MSM8937, > MSS_MSM8953, > MSS_MSM8974, > MSS_MSM8996, > @@ -751,6 +752,7 @@ static int q6v5proc_reset(struct q6v5 *qproc) > } else if (qproc->version == MSS_MDM9607 || > qproc->version == MSS_MSM8909 || > qproc->version == MSS_MSM8917 || > + qproc->version == MSS_MSM8937 || > qproc->version == MSS_MSM8953 || > qproc->version == MSS_MSM8996 || > qproc->version == MSS_MSM8998 || > @@ -758,7 +760,8 @@ static int q6v5proc_reset(struct q6v5 *qproc) > > /* Override the ACC value if required */ > if (qproc->version == MSS_MDM9607 || > - qproc->version == MSS_MSM8917) > + qproc->version == MSS_MSM8917 || > + qproc->version == MSS_MSM8937) > writel(QDSP6SS_ACC_OVERRIDE_VAL_9607, > qproc->reg_base + QDSP6SS_STRAP_ACC); > else if (qproc->version != MSS_MSM8909 && > @@ -821,6 +824,7 @@ static int q6v5proc_reset(struct q6v5 *qproc) > /* Turn on L1, L2, ETB and JU memories 1 at a time */ > if (qproc->version == MSS_MDM9607 || > qproc->version == MSS_MSM8917 || > + qproc->version == MSS_MSM8937 || > qproc->version == MSS_MSM8953 || > qproc->version == MSS_MSM8996) { > mem_pwr_ctl = QDSP6SS_MEM_PWR_CTL; > @@ -831,7 +835,8 @@ static int q6v5proc_reset(struct q6v5 *qproc) > * "inrush current" issues. > */ > if (qproc->version == MSS_MDM9607 || > - qproc->version == MSS_MSM8917) > + qproc->version == MSS_MSM8917 || > + qproc->version == MSS_MSM8937) > reverse = 6; > } else { > /* MSS_MSM8998, MSS_SDM660 */ > @@ -1466,7 +1471,8 @@ static int q6v5_mpss_load(struct q6v5 *qproc) > max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K); > } > > - if (qproc->version == MSS_MSM8953) { > + if (qproc->version == MSS_MSM8937 || > + qproc->version == MSS_MSM8953) { > ret = qcom_scm_pas_mem_setup(MPSS_PAS_ID, qproc->mpss_phys, > qproc->mpss_size); > if (ret) { > dev_err(qproc->dev,
I think for consistency it would be cleaner if this was a flag like "need_mem_protection" (i.e. something like "need_pas_mem_setup"). Then you could reuse the actual reset sequence from MSS_MDM9607 similar to MSM8917. Thanks, Stephan

