Re: [PATCH v4 07/15] soc: qcom: mdtloader: Switch to generic PAS TZ APIs

Sumit Garg
2026-05-01T14:00:13Z

On Wed, Apr 29, 2026 at 07:12:08PM +0530, Mukesh Ojha wrote:
> On Mon, Apr 27, 2026 at 03:25:55PM +0530, Sumit Garg wrote:
> > From: Sumit Garg <sumit.garg@oss.qualcomm.com>
> >
> > Switch mdtloader client driver over to generic PAS TZ APIs. Generic PAS
> > TZ service allows to support multiple TZ implementation backends like QTEE
> > based SCM PAS service, OP-TEE based PAS service and any further future TZ
> > backend service.
> >
> > Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> > ---
> > drivers/soc/qcom/mdt_loader.c | 12 ++++++------
> > include/linux/soc/qcom/mdt_loader.h | 6 +++---
> > 2 files changed, 9 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c
> > index c004d444d698..fdde7eda538a 100644
> > --- a/drivers/soc/qcom/mdt_loader.c
> > +++ b/drivers/soc/qcom/mdt_loader.c
> > @@ -13,7 +13,7 @@
> > #include <linux/firmware.h>
> > #include <linux/kernel.h>
> > #include <linux/module.h>
> > -#include <linux/firmware/qcom/qcom_scm.h>
> > +#include <linux/firmware/qcom/qcom_pas.h>
> > #include <linux/sizes.h>
> > #include <linux/slab.h>
> > #include <linux/soc/qcom/mdt_loader.h>
> > @@ -229,7 +229,7 @@ EXPORT_SYMBOL_GPL(qcom_mdt_read_metadata);
> >
> > static int __qcom_mdt_pas_init(struct device *dev, const struct firmware *fw,
> > const char *fw_name, int pas_id, phys_addr_t mem_phys,
> > - struct qcom_scm_pas_context *ctx)
> > + struct qcom_pas_context *ctx)
> > {
> > const struct elf32_phdr *phdrs;
> > const struct elf32_phdr *phdr;
> > @@ -271,7 +271,7 @@ static int __qcom_mdt_pas_init(struct device *dev, const struct firmware *fw,
> > goto out;
> > }
> >
> > - ret = qcom_scm_pas_init_image(pas_id, metadata, metadata_len, ctx);
> > + ret = qcom_pas_init_image(pas_id, metadata, metadata_len, ctx);
> > kfree(metadata);
> > if (ret) {
> > /* Invalid firmware metadata */
> > @@ -280,7 +280,7 @@ static int __qcom_mdt_pas_init(struct device *dev, const struct firmware *fw,
> > }
> >
> > if (relocate) {
> > - ret = qcom_scm_pas_mem_setup(pas_id, mem_phys, max_addr - min_addr);
> > + ret = qcom_pas_mem_setup(pas_id, mem_phys, max_addr - min_addr);
> > if (ret) {
> > /* Unable to set up relocation */
> > dev_err(dev, "error %d setting up firmware %s\n", ret, fw_name);
> > @@ -472,7 +472,7 @@ EXPORT_SYMBOL_GPL(qcom_mdt_load);
> > * firmware segments (e.g., .bXX files). Authentication of the segments done
> > * by a separate call.
> > *
> > - * The PAS context must be initialized using qcom_scm_pas_context_init()
> > + * The PAS context must be initialized using qcom_pas_context_init()
>
> Should devm_qcom_pas_context_alloc() now

Ack.

>
> > * prior to invoking this function.
> > *
> > * @ctx: Pointer to the PAS (Peripheral Authentication Service) context
> > @@ -483,7 +483,7 @@ EXPORT_SYMBOL_GPL(qcom_mdt_load);
> > *
> > * Return: 0 on success or a negative error code on failure.
> > */
> > -int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, const struct firmware *fw,
> > +int qcom_mdt_pas_load(struct qcom_pas_context *ctx, const struct firmware *fw,
> > const char *firmware, void *mem_region, phys_addr_t *reloc_base)
> > {
> > int ret;
> > diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/mdt_loader.h
> > index 82372e0db0a1..142409555425 100644
> > --- a/include/linux/soc/qcom/mdt_loader.h
> > +++ b/include/linux/soc/qcom/mdt_loader.h
> > @@ -10,7 +10,7 @@
> >
> > struct device;
> > struct firmware;
> > -struct qcom_scm_pas_context;
> > +struct qcom_pas_context;
> >
> > #if IS_ENABLED(CONFIG_QCOM_MDT_LOADER)
> >
> > @@ -20,7 +20,7 @@ int qcom_mdt_load(struct device *dev, const struct firmware *fw,
> > phys_addr_t mem_phys, size_t mem_size,
> > phys_addr_t *reloc_base);
> >
> > -int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, const struct firmware *fw,
> > +int qcom_mdt_pas_load(struct qcom_pas_context *ctx, const struct firmware *fw,
> > const char *firmware, void *mem_region, phys_addr_t *reloc_base);
> >
> > int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw,
> > @@ -45,7 +45,7 @@ static inline int qcom_mdt_load(struct device *dev, const struct firmware *fw,
> > return -ENODEV;
> > }
> >
> > -static inline int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx,
> > +static inline int qcom_mdt_pas_load(struct qcom_pas_context *ctx,
> > const struct firmware *fw, const char *firmware,
> > void *mem_region, phys_addr_t *reloc_base)
> > {
> > --
> > 2.51.0
> >
>
> With above nit
>
> Reviewed-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>

Thanks.

-Sumit