* [PATCH v2 0/3] media: qcom: Skip SCM secure memory protection with OP-TEE PAS backend
@ 2026-10-27 12:39 Sumit Garg
2026-10-27 12:39 ` [PATCH v2 1/3] firmware: qcom: pas: Add optional video memory protection op Sumit Garg
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Sumit Garg @ 2026-10-27 12:39 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Bryan O'Donoghue, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-kernel, linux-media, Konrad Dybcio,
Jorge Ramirez-Ortiz, Jorge Ramirez-Ortiz, Sumit Garg
The Qualcomm peripheral authentication service (PAS) can be serviced by
either the SCM (TrustZone) backend or, on OP-TEE based platforms, by the
OP-TEE backend. qcom_scm_mem_protect_video_var() is only implemented by
the SCM backend; with OP-TEE the TEE itself owns secure memory
protection and does not service this call. Issuing it unconditionally on
an OP-TEE backend fails firmware bring-up for the venus and iris video
codecs.
Patch 1 adds an optional PAS op along with a generic
qcom_pas_mem_protect_video_var() wrapper. The SCM backend maps it to the
existing SCM call, while backends that leave it unset get a no-op.
Patch 2 switches the venus and iris drivers to the new API, so that they
stay agnostic of the active PAS backend, and drops their Kconfig
dependency on QCOM_SCM. Patch 3 folds the SCM call into the SCM PAS
backend and drops its export.
No functional change is intended for the SCM backend.
Changes in v2:
- Dropped the qcom_pas_get_backend() helper and the backend name
matching in the video drivers, as suggested by Konrad and Vikash.
- Stubbed the video memory protection call via the generic PAS layer
instead, with the SCM backend reusing the existing abstraction.
- Dropped the QCOM_SCM Kconfig selection from the venus and iris drivers.
- Added patch 3 to drop the export of qcom_scm_mem_protect_video_var().
- Link to v1: https://lore.kernel.org/all/20260911-video-optee-pas-v1-v1-0-7bbddaaac5ba@kernel.org/
---
Sumit Garg (3):
firmware: qcom: pas: Add optional video memory protection op
media: qcom: Use PAS API for video memory protection
firmware: qcom: scm: Drop export of qcom_scm_mem_protect_video_var()
drivers/firmware/qcom/qcom_pas.c | 27 +++++++++++++
drivers/firmware/qcom/qcom_pas.h | 5 +++
drivers/firmware/qcom/qcom_scm.c | 48 ++++++++++++------------
drivers/media/platform/qcom/iris/Kconfig | 1 -
drivers/media/platform/qcom/iris/iris_firmware.c | 5 +--
drivers/media/platform/qcom/venus/Kconfig | 1 -
drivers/media/platform/qcom/venus/firmware.c | 3 +-
include/linux/firmware/qcom/qcom_pas.h | 2 +
include/linux/firmware/qcom/qcom_scm.h | 2 -
9 files changed, 61 insertions(+), 33 deletions(-)
---
base-commit: 75a4de0d94f62bce938ebcacd8a7a8ed35a0439b
change-id: 20261027-pas-video-65c73f482b20
Best regards,
--
Sumit Garg <sumit.garg@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/3] firmware: qcom: pas: Add optional video memory protection op
2026-10-27 12:39 [PATCH v2 0/3] media: qcom: Skip SCM secure memory protection with OP-TEE PAS backend Sumit Garg
@ 2026-10-27 12:39 ` Sumit Garg
2026-10-27 15:58 ` Konrad Dybcio
2026-10-27 12:39 ` [PATCH v2 2/3] media: qcom: Use PAS API for video memory protection Sumit Garg
2026-10-27 12:39 ` [PATCH v2 3/3] firmware: qcom: scm: Drop export of qcom_scm_mem_protect_video_var() Sumit Garg
2 siblings, 1 reply; 7+ messages in thread
From: Sumit Garg @ 2026-10-27 12:39 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Bryan O'Donoghue, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-kernel, linux-media, Konrad Dybcio,
Jorge Ramirez-Ortiz, Jorge Ramirez-Ortiz, Sumit Garg
From: Sumit Garg <sumit.garg@oss.qualcomm.com>
qcom_scm_mem_protect_video_var() is only serviced by the SCM backend.
Other PAS backends, e.g. OP-TEE, own secure memory protection and don't
implement such a call.
Add an optional mem_protect_video_var() PAS op along with a generic
qcom_pas_mem_protect_video_var() wrapper so that clients stay agnostic
of the active backend. The SCM backend maps it to the existing SCM call
while backends leaving it unset turn it into a no-op.
Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
---
drivers/firmware/qcom/qcom_pas.c | 27 +++++++++++++++++++++++++++
drivers/firmware/qcom/qcom_pas.h | 5 +++++
drivers/firmware/qcom/qcom_scm.c | 10 ++++++++++
include/linux/firmware/qcom/qcom_pas.h | 2 ++
4 files changed, 44 insertions(+)
diff --git a/drivers/firmware/qcom/qcom_pas.c b/drivers/firmware/qcom/qcom_pas.c
index 24485dd0fa10..d478171e4697 100644
--- a/drivers/firmware/qcom/qcom_pas.c
+++ b/drivers/firmware/qcom/qcom_pas.c
@@ -237,6 +237,33 @@ int qcom_pas_shutdown(u32 pas_id)
}
EXPORT_SYMBOL_GPL(qcom_pas_shutdown);
+/**
+ * qcom_pas_mem_protect_video_var() - Set up video content protection ranges
+ * @cp_start: content protection region start
+ * @cp_size: content protection region size
+ * @cp_nonpixel_start: non-pixel region start
+ * @cp_nonpixel_size: non-pixel region size
+ *
+ * Backends that manage secure memory protection on their own do not
+ * implement this operation, in which case it is a no-op.
+ *
+ * Return: 0 on success.
+ */
+int qcom_pas_mem_protect_video_var(u32 cp_start, u32 cp_size,
+ u32 cp_nonpixel_start, u32 cp_nonpixel_size)
+{
+ if (!ops_ptr)
+ return -ENODEV;
+
+ if (!ops_ptr->mem_protect_video_var)
+ return 0;
+
+ return ops_ptr->mem_protect_video_var(ops_ptr->dev, cp_start, cp_size,
+ cp_nonpixel_start,
+ cp_nonpixel_size);
+}
+EXPORT_SYMBOL_GPL(qcom_pas_mem_protect_video_var);
+
/**
* qcom_pas_supported() - Check if the peripheral authentication service is
* supported for the given peripheral
diff --git a/drivers/firmware/qcom/qcom_pas.h b/drivers/firmware/qcom/qcom_pas.h
index 8643e2760602..481343669e1d 100644
--- a/drivers/firmware/qcom/qcom_pas.h
+++ b/drivers/firmware/qcom/qcom_pas.h
@@ -22,6 +22,8 @@ struct device;
* callback.
* @set_remote_state: Peripheral set remote state callback.
* @shutdown: Peripheral shutdown callback.
+ * @mem_protect_video_var: Optional video secure memory protection callback.
+ * Backends that do not need it leave it unset.
* @metadata_release: Image metadata release callback.
*/
struct qcom_pas_ops {
@@ -40,6 +42,9 @@ struct qcom_pas_ops {
int (*auth_and_reset)(struct device *dev, u32 pas_id);
int (*set_remote_state)(struct device *dev, u32 state, u32 pas_id);
int (*shutdown)(struct device *dev, u32 pas_id);
+ int (*mem_protect_video_var)(struct device *dev, u32 cp_start,
+ u32 cp_size, u32 cp_nonpixel_start,
+ u32 cp_nonpixel_size);
void (*metadata_release)(struct device *dev,
struct qcom_pas_context *ctx);
};
diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 43e250faea75..5445c1aa14cc 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -981,6 +981,15 @@ static bool qcom_scm_pas_supported(struct device *dev, u32 pas_id)
return ret ? false : !!res.result[0];
}
+static int qcom_scm_pas_mem_protect_video_var(struct device *dev, u32 cp_start,
+ u32 cp_size, u32 cp_nonpixel_start,
+ u32 cp_nonpixel_size)
+{
+ return qcom_scm_mem_protect_video_var(cp_start, cp_size,
+ cp_nonpixel_start,
+ cp_nonpixel_size);
+}
+
static struct qcom_pas_ops qcom_pas_ops_scm = {
.drv_name = "qcom_scm",
.supported = qcom_scm_pas_supported,
@@ -991,6 +1000,7 @@ static struct qcom_pas_ops qcom_pas_ops_scm = {
.prepare_and_auth_reset = qcom_scm_pas_prepare_and_auth_reset,
.set_remote_state = qcom_scm_pas_set_remote_state,
.shutdown = qcom_scm_pas_shutdown,
+ .mem_protect_video_var = qcom_scm_pas_mem_protect_video_var,
.metadata_release = qcom_scm_pas_metadata_release,
};
diff --git a/include/linux/firmware/qcom/qcom_pas.h b/include/linux/firmware/qcom/qcom_pas.h
index fb2ec3be6a16..bfd4a9e5a705 100644
--- a/include/linux/firmware/qcom/qcom_pas.h
+++ b/include/linux/firmware/qcom/qcom_pas.h
@@ -49,6 +49,8 @@ int qcom_pas_auth_and_reset(u32 pas_id);
int qcom_pas_prepare_and_auth_reset(struct qcom_pas_context *ctx);
int qcom_pas_set_remote_state(u32 state, u32 pas_id);
int qcom_pas_shutdown(u32 pas_id);
+int qcom_pas_mem_protect_video_var(u32 cp_start, u32 cp_size,
+ u32 cp_nonpixel_start, u32 cp_nonpixel_size);
bool qcom_pas_supported(u32 pas_id);
void qcom_pas_metadata_release(struct qcom_pas_context *ctx);
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/3] media: qcom: Use PAS API for video memory protection
2026-10-27 12:39 [PATCH v2 0/3] media: qcom: Skip SCM secure memory protection with OP-TEE PAS backend Sumit Garg
2026-10-27 12:39 ` [PATCH v2 1/3] firmware: qcom: pas: Add optional video memory protection op Sumit Garg
@ 2026-10-27 12:39 ` Sumit Garg
2026-10-27 15:59 ` Konrad Dybcio
2026-10-27 12:39 ` [PATCH v2 3/3] firmware: qcom: scm: Drop export of qcom_scm_mem_protect_video_var() Sumit Garg
2 siblings, 1 reply; 7+ messages in thread
From: Sumit Garg @ 2026-10-27 12:39 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Bryan O'Donoghue, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-kernel, linux-media, Konrad Dybcio,
Jorge Ramirez-Ortiz, Jorge Ramirez-Ortiz, Sumit Garg
From: Sumit Garg <sumit.garg@oss.qualcomm.com>
Replace the direct qcom_scm_mem_protect_video_var() calls in venus and
iris with qcom_pas_mem_protect_video_var(), so that the call is only
issued when the active PAS backend needs it. This allows the video
codecs to bring up firmware with the OP-TEE PAS backend as well, with
no functional change for the SCM backend.
As the video drivers no longer call into SCM directly, also drop their
Kconfig selection of QCOM_SCM.
Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
---
drivers/media/platform/qcom/iris/Kconfig | 1 -
drivers/media/platform/qcom/iris/iris_firmware.c | 5 ++---
drivers/media/platform/qcom/venus/Kconfig | 1 -
drivers/media/platform/qcom/venus/firmware.c | 3 +--
4 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/media/platform/qcom/iris/Kconfig b/drivers/media/platform/qcom/iris/Kconfig
index 0996213e71e7..804d8d38341e 100644
--- a/drivers/media/platform/qcom/iris/Kconfig
+++ b/drivers/media/platform/qcom/iris/Kconfig
@@ -5,7 +5,6 @@ config VIDEO_QCOM_IRIS
depends on QCOM_SMEM || QCOM_SMEM=n
select V4L2_MEM2MEM_DEV
select QCOM_MDT_LOADER
- select QCOM_SCM
select QCOM_PAS
select QCOM_UBWC_CONFIG if ARCH_QCOM && QCOM_SMEM
select VIDEOBUF2_DMA_CONTIG
diff --git a/drivers/media/platform/qcom/iris/iris_firmware.c b/drivers/media/platform/qcom/iris/iris_firmware.c
index ed2bd0e83797..16e19c65c7ba 100644
--- a/drivers/media/platform/qcom/iris/iris_firmware.c
+++ b/drivers/media/platform/qcom/iris/iris_firmware.c
@@ -5,7 +5,6 @@
#include <linux/firmware.h>
#include <linux/firmware/qcom/qcom_pas.h>
-#include <linux/firmware/qcom/qcom_scm.h>
#include <linux/of_address.h>
#include <linux/of_reserved_mem.h>
#include <linux/soc/qcom/mdt_loader.h>
@@ -241,12 +240,12 @@ int iris_fw_load(struct iris_core *core)
for (i = 0; i < core->iris_platform_data->tz_cp_config_data_size; i++) {
cp_config = &core->iris_platform_data->tz_cp_config_data[i];
- ret = qcom_scm_mem_protect_video_var(cp_config->cp_start,
+ ret = qcom_pas_mem_protect_video_var(cp_config->cp_start,
cp_config->cp_size,
cp_config->cp_nonpixel_start,
cp_config->cp_nonpixel_size);
if (ret) {
- dev_err(core->dev, "qcom_scm_mem_protect_video_var failed: %d\n", ret);
+ dev_err(core->dev, "qcom_pas_mem_protect_video_var failed: %d\n", ret);
qcom_pas_shutdown(IRIS_PAS_ID);
return ret;
}
diff --git a/drivers/media/platform/qcom/venus/Kconfig b/drivers/media/platform/qcom/venus/Kconfig
index 7997b8aa427a..c4362eff954a 100644
--- a/drivers/media/platform/qcom/venus/Kconfig
+++ b/drivers/media/platform/qcom/venus/Kconfig
@@ -5,7 +5,6 @@ config VIDEO_QCOM_VENUS
depends on (ARCH_QCOM && ARM64 && IOMMU_API) || COMPILE_TEST
select OF_DYNAMIC if ARCH_QCOM
select QCOM_MDT_LOADER
- select QCOM_SCM
select QCOM_PAS
select VIDEOBUF2_DMA_CONTIG
select V4L2_MEM2MEM_DEV
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index 3c0727ea137d..d232fe5b28b4 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -13,7 +13,6 @@
#include <linux/platform_device.h>
#include <linux/of_device.h>
#include <linux/firmware/qcom/qcom_pas.h>
-#include <linux/firmware/qcom/qcom_scm.h>
#include <linux/sizes.h>
#include <linux/soc/qcom/mdt_loader.h>
@@ -255,7 +254,7 @@ int venus_boot(struct venus_core *core)
* cp_nonpixel_start = venus_sec_non_pixel/virtual-addr-pool[0]
* cp_nonpixel_size = venus_sec_non_pixel/virtual-addr-pool[1]
*/
- ret = qcom_scm_mem_protect_video_var(res->cp_start,
+ ret = qcom_pas_mem_protect_video_var(res->cp_start,
res->cp_size,
res->cp_nonpixel_start,
res->cp_nonpixel_size);
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 3/3] firmware: qcom: scm: Drop export of qcom_scm_mem_protect_video_var()
2026-10-27 12:39 [PATCH v2 0/3] media: qcom: Skip SCM secure memory protection with OP-TEE PAS backend Sumit Garg
2026-10-27 12:39 ` [PATCH v2 1/3] firmware: qcom: pas: Add optional video memory protection op Sumit Garg
2026-10-27 12:39 ` [PATCH v2 2/3] media: qcom: Use PAS API for video memory protection Sumit Garg
@ 2026-10-27 12:39 ` Sumit Garg
2026-10-27 15:59 ` Konrad Dybcio
2 siblings, 1 reply; 7+ messages in thread
From: Sumit Garg @ 2026-10-27 12:39 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Bryan O'Donoghue, Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-kernel, linux-media, Konrad Dybcio,
Jorge Ramirez-Ortiz, Jorge Ramirez-Ortiz, Sumit Garg
From: Sumit Garg <sumit.garg@oss.qualcomm.com>
All the users now go through the generic PAS API, so fold the SCM call
into the SCM PAS backend op and drop the exported API along with its
declaration.
Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
---
drivers/firmware/qcom/qcom_scm.c | 44 +++++++++++++---------------------
include/linux/firmware/qcom/qcom_scm.h | 2 --
2 files changed, 17 insertions(+), 29 deletions(-)
diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 5445c1aa14cc..5746a41800b1 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -985,9 +985,23 @@ static int qcom_scm_pas_mem_protect_video_var(struct device *dev, u32 cp_start,
u32 cp_size, u32 cp_nonpixel_start,
u32 cp_nonpixel_size)
{
- return qcom_scm_mem_protect_video_var(cp_start, cp_size,
- cp_nonpixel_start,
- cp_nonpixel_size);
+ int ret;
+ struct qcom_scm_desc desc = {
+ .svc = QCOM_SCM_SVC_MP,
+ .cmd = QCOM_SCM_MP_VIDEO_VAR,
+ .arginfo = QCOM_SCM_ARGS(4, QCOM_SCM_VAL, QCOM_SCM_VAL,
+ QCOM_SCM_VAL, QCOM_SCM_VAL),
+ .args[0] = cp_start,
+ .args[1] = cp_size,
+ .args[2] = cp_nonpixel_start,
+ .args[3] = cp_nonpixel_size,
+ .owner = ARM_SMCCC_OWNER_SIP,
+ };
+ struct qcom_scm_res res;
+
+ ret = qcom_scm_call(dev, &desc, &res);
+
+ return ret ? : res.result[0];
}
static struct qcom_pas_ops qcom_pas_ops_scm = {
@@ -1214,30 +1228,6 @@ int qcom_scm_iommu_set_cp_pool_size(u32 spare, u32 size)
}
EXPORT_SYMBOL_GPL(qcom_scm_iommu_set_cp_pool_size);
-int qcom_scm_mem_protect_video_var(u32 cp_start, u32 cp_size,
- u32 cp_nonpixel_start,
- u32 cp_nonpixel_size)
-{
- int ret;
- struct qcom_scm_desc desc = {
- .svc = QCOM_SCM_SVC_MP,
- .cmd = QCOM_SCM_MP_VIDEO_VAR,
- .arginfo = QCOM_SCM_ARGS(4, QCOM_SCM_VAL, QCOM_SCM_VAL,
- QCOM_SCM_VAL, QCOM_SCM_VAL),
- .args[0] = cp_start,
- .args[1] = cp_size,
- .args[2] = cp_nonpixel_start,
- .args[3] = cp_nonpixel_size,
- .owner = ARM_SMCCC_OWNER_SIP,
- };
- struct qcom_scm_res res;
-
- ret = qcom_scm_call(__scm->dev, &desc, &res);
-
- return ret ? : res.result[0];
-}
-EXPORT_SYMBOL_GPL(qcom_scm_mem_protect_video_var);
-
static int __qcom_scm_assign_mem(struct device *dev, phys_addr_t mem_region,
size_t mem_sz, phys_addr_t src, size_t src_sz,
phys_addr_t dest, size_t dest_sz)
diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmware/qcom/qcom_scm.h
index a0a6bc0229c4..48e627079e97 100644
--- a/include/linux/firmware/qcom/qcom_scm.h
+++ b/include/linux/firmware/qcom/qcom_scm.h
@@ -75,8 +75,6 @@ bool qcom_scm_set_gpu_smmu_aperture_is_available(void);
int qcom_scm_iommu_secure_ptbl_size(u32 spare, size_t *size);
int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare);
int qcom_scm_iommu_set_cp_pool_size(u32 spare, u32 size);
-int qcom_scm_mem_protect_video_var(u32 cp_start, u32 cp_size,
- u32 cp_nonpixel_start, u32 cp_nonpixel_size);
int qcom_scm_assign_mem(phys_addr_t mem_addr, size_t mem_sz, u64 *src,
const struct qcom_scm_vmperm *newvm,
unsigned int dest_cnt);
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/3] firmware: qcom: pas: Add optional video memory protection op
2026-10-27 12:39 ` [PATCH v2 1/3] firmware: qcom: pas: Add optional video memory protection op Sumit Garg
@ 2026-10-27 15:58 ` Konrad Dybcio
0 siblings, 0 replies; 7+ messages in thread
From: Konrad Dybcio @ 2026-10-27 15:58 UTC (permalink / raw)
To: Sumit Garg, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Dikshita Agarwal, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-kernel, linux-media, Jorge Ramirez-Ortiz,
Jorge Ramirez-Ortiz, Sumit Garg
On 10/27/26 1:39 PM, Sumit Garg wrote:
> From: Sumit Garg <sumit.garg@oss.qualcomm.com>
>
> qcom_scm_mem_protect_video_var() is only serviced by the SCM backend.
> Other PAS backends, e.g. OP-TEE, own secure memory protection and don't
> implement such a call.
>
> Add an optional mem_protect_video_var() PAS op along with a generic
> qcom_pas_mem_protect_video_var() wrapper so that clients stay agnostic
> of the active backend. The SCM backend maps it to the existing SCM call
> while backends leaving it unset turn it into a no-op.
>
> Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> ---
I agree it's imperfect but it fits better
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/3] media: qcom: Use PAS API for video memory protection
2026-10-27 12:39 ` [PATCH v2 2/3] media: qcom: Use PAS API for video memory protection Sumit Garg
@ 2026-10-27 15:59 ` Konrad Dybcio
0 siblings, 0 replies; 7+ messages in thread
From: Konrad Dybcio @ 2026-10-27 15:59 UTC (permalink / raw)
To: Sumit Garg, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Dikshita Agarwal, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-kernel, linux-media, Jorge Ramirez-Ortiz,
Jorge Ramirez-Ortiz, Sumit Garg
On 10/27/26 1:39 PM, Sumit Garg wrote:
> From: Sumit Garg <sumit.garg@oss.qualcomm.com>
>
> Replace the direct qcom_scm_mem_protect_video_var() calls in venus and
> iris with qcom_pas_mem_protect_video_var(), so that the call is only
> issued when the active PAS backend needs it. This allows the video
> codecs to bring up firmware with the OP-TEE PAS backend as well, with
> no functional change for the SCM backend.
>
> As the video drivers no longer call into SCM directly, also drop their
> Kconfig selection of QCOM_SCM.
>
> Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 3/3] firmware: qcom: scm: Drop export of qcom_scm_mem_protect_video_var()
2026-10-27 12:39 ` [PATCH v2 3/3] firmware: qcom: scm: Drop export of qcom_scm_mem_protect_video_var() Sumit Garg
@ 2026-10-27 15:59 ` Konrad Dybcio
0 siblings, 0 replies; 7+ messages in thread
From: Konrad Dybcio @ 2026-10-27 15:59 UTC (permalink / raw)
To: Sumit Garg, Bjorn Andersson, Konrad Dybcio, Vikash Garodia,
Dikshita Agarwal, Abhinav Kumar, Bryan O'Donoghue,
Mauro Carvalho Chehab
Cc: linux-arm-msm, linux-kernel, linux-media, Jorge Ramirez-Ortiz,
Jorge Ramirez-Ortiz, Sumit Garg
On 10/27/26 1:39 PM, Sumit Garg wrote:
> From: Sumit Garg <sumit.garg@oss.qualcomm.com>
>
> All the users now go through the generic PAS API, so fold the SCM call
> into the SCM PAS backend op and drop the exported API along with its
> declaration.
>
> Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-10-27 15:59 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-27 12:39 [PATCH v2 0/3] media: qcom: Skip SCM secure memory protection with OP-TEE PAS backend Sumit Garg
2026-10-27 12:39 ` [PATCH v2 1/3] firmware: qcom: pas: Add optional video memory protection op Sumit Garg
2026-10-27 15:58 ` Konrad Dybcio
2026-10-27 12:39 ` [PATCH v2 2/3] media: qcom: Use PAS API for video memory protection Sumit Garg
2026-10-27 15:59 ` Konrad Dybcio
2026-10-27 12:39 ` [PATCH v2 3/3] firmware: qcom: scm: Drop export of qcom_scm_mem_protect_video_var() Sumit Garg
2026-10-27 15:59 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®