On Thu, Nov 13, 2025 at 01:12:20PM +0100, Stephan Gerhold wrote: > On Thu, Nov 13, 2025 at 04:05:59PM +0530, Mukesh Ojha wrote: > > Simplify qcom_scm_pas_init_image() by making the memory allocation, > > copy and free operations done in a separate function than the actual > > SMC call. > > Nitpick: This feels more like "refactoring in preparation of the > following patch" rather than a real simplification.
Will reword it. > > > > > Reviewed-by: Bryan O'Donoghue <[email protected]> > > Reviewed-by: Konrad Dybcio <[email protected]> > > Signed-off-by: Mukesh Ojha <[email protected]> > > --- > > drivers/firmware/qcom/qcom_scm.c | 58 > > +++++++++++++++++++++++----------------- > > 1 file changed, 33 insertions(+), 25 deletions(-) > > > > diff --git a/drivers/firmware/qcom/qcom_scm.c > > b/drivers/firmware/qcom/qcom_scm.c > > index 550707f2b46d..1d8a2c537c44 100644 > > --- a/drivers/firmware/qcom/qcom_scm.c > > +++ b/drivers/firmware/qcom/qcom_scm.c > > @@ -590,6 +590,37 @@ void *devm_qcom_scm_pas_context_init(struct device > > *dev, u32 pas_id, phys_addr_t > > } > > EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); > > > > +static int __qcom_scm_pas_init_image(u32 pas_id, dma_addr_t mdata_phys, > > void *metadata, > > + size_t size, struct qcom_scm_res *res) > > The metadata and size parameters do not seem to be used inside this > function (also not after your follow-up patches), do we need them here? Yeah, you are right, no we don't need them. > > > +{ > > + struct qcom_scm_desc desc = { > > + .svc = QCOM_SCM_SVC_PIL, > > + .cmd = QCOM_SCM_PIL_PAS_INIT_IMAGE, > > + .arginfo = QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), > > + .args[0] = pas_id, > > + .owner = ARM_SMCCC_OWNER_SIP, > > + }; > > + int ret; > > + > > + ret = qcom_scm_clk_enable(); > > + if (ret) > > + return ret; > > + > > + ret = qcom_scm_bw_enable(); > > + if (ret) > > + goto disable_clk; > > + > > + desc.args[1] = mdata_phys; > > + > > + ret = qcom_scm_call(__scm->dev, &desc, res); > > + qcom_scm_bw_disable(); > > + > > +disable_clk: > > + qcom_scm_clk_disable(); > > + > > + return ret; > > +} > > Thanks, > Stephan -- -Mukesh Ojha

