Re: [PATCH v4 12/15] net: ipa: Switch to generic PAS TZ APIs
Alex Elder via OP-TEE <[email protected]> Tue, 28 Apr 2026 11:54:00 -0500
| Newsgroups | org.trustedfirmware.lists.op-tee,org.freedesktop.lists.dri-devel,org.infradead.lists.ath12k,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-remoteproc,org.kernel.vger.linux-wireless,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On 4/27/26 4:56 AM, Sumit Garg wrote: > From: Sumit Garg <[email protected]> > > Switch ipa 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 <[email protected]> Looks good to me. Reviewed-by: Alex Elder <[email protected]> > --- > drivers/net/ipa/Kconfig | 2 +- > drivers/net/ipa/ipa_main.c | 13 ++++++++----- > 2 files changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/ipa/Kconfig b/drivers/net/ipa/Kconfig > index 01d219d3760c..a9aff1b7977d 100644 > --- a/drivers/net/ipa/Kconfig > +++ b/drivers/net/ipa/Kconfig > @@ -6,7 +6,7 @@ config QCOM_IPA > depends on QCOM_RPROC_COMMON || (QCOM_RPROC_COMMON=n && COMPILE_TEST) > depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n > select QCOM_MDT_LOADER > - select QCOM_SCM > + select QCOM_PAS > select QCOM_QMI_HELPERS > help > Choose Y or M here to include support for the Qualcomm > diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c > index 788dd99af2a4..3cd9e44680e9 100644 > --- a/drivers/net/ipa/ipa_main.c > +++ b/drivers/net/ipa/ipa_main.c > @@ -14,7 +14,7 @@ > #include <linux/pm_runtime.h> > #include <linux/types.h> > > -#include <linux/firmware/qcom/qcom_scm.h> > +#include <linux/firmware/qcom/qcom_pas.h> > #include <linux/soc/qcom/mdt_loader.h> > > #include "ipa.h" > @@ -624,10 +624,13 @@ static int ipa_firmware_load(struct device *dev) > } > > ret = qcom_mdt_load(dev, fw, path, IPA_PAS_ID, virt, phys, size, NULL); > - if (ret) > + if (ret) { > dev_err(dev, "error %d loading \"%s\"\n", ret, path); > - else if ((ret = qcom_scm_pas_auth_and_reset(IPA_PAS_ID))) > - dev_err(dev, "error %d authenticating \"%s\"\n", ret, path); > + } else { > + ret = qcom_pas_auth_and_reset(IPA_PAS_ID); > + if (ret) > + dev_err(dev, "error %d authenticating \"%s\"\n", ret, path); > + } > > memunmap(virt); > out_release_firmware: > @@ -758,7 +761,7 @@ static enum ipa_firmware_loader ipa_firmware_loader(struct device *dev) > return IPA_LOADER_INVALID; > out_self: > /* We need Trust Zone to load firmware; make sure it's available */ > - if (qcom_scm_is_available()) > + if (qcom_pas_is_available()) > return IPA_LOADER_SELF; > > return IPA_LOADER_DEFER;