mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
firmware: qcom_scm: Add support for protecting videos
Add secure world call to protect memory for video. Change-Id: I27a82d31054b8a2459738d3c7a2785abd357504f Signed-off-by: Elliot Berman <eberman@codeaurora.org>
This commit is contained in:
parent
6009e24b13
commit
d98f9f01bf
4 changed files with 36 additions and 0 deletions
|
|
@ -1054,6 +1054,25 @@ int __qcom_scm_iommu_secure_ptbl_init(struct device *dev, u64 addr, u32 size,
|
|||
return ret;
|
||||
}
|
||||
|
||||
int __qcom_scm_mem_protect_video(struct device *dev,
|
||||
u32 cp_start, u32 cp_size,
|
||||
u32 cp_nonpixel_start, u32 cp_nonpixel_size)
|
||||
{
|
||||
struct qcom_scm_desc desc = {
|
||||
.svc = QCOM_SCM_SVC_MP,
|
||||
.cmd = QCOM_SCM_MP_MEM_PROTECT_VIDEO,
|
||||
.owner = ARM_SMCCC_OWNER_SIP
|
||||
};
|
||||
|
||||
desc.args[0] = cp_start;
|
||||
desc.args[1] = cp_size;
|
||||
desc.args[2] = cp_nonpixel_start;
|
||||
desc.args[3] = cp_nonpixel_size;
|
||||
desc.arginfo = QCOM_SCM_ARGS(4);
|
||||
|
||||
return qcom_scm_call(dev, &desc);
|
||||
}
|
||||
|
||||
int __qcom_scm_mem_protect_region_id(struct device *dev, phys_addr_t paddr,
|
||||
size_t size)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -388,6 +388,14 @@ int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare)
|
|||
}
|
||||
EXPORT_SYMBOL(qcom_scm_iommu_secure_ptbl_init);
|
||||
|
||||
int qcom_scm_mem_protect_video(u32 cp_start, u32 cp_size,
|
||||
u32 cp_nonpixel_start, u32 cp_nonpixel_size)
|
||||
{
|
||||
return __qcom_scm_mem_protect_video(__scm->dev, cp_start, cp_size,
|
||||
cp_nonpixel_start, cp_nonpixel_size);
|
||||
}
|
||||
EXPORT_SYMBOL(qcom_scm_mem_protect_video);
|
||||
|
||||
int qcom_scm_mem_protect_region_id(phys_addr_t paddr, size_t size)
|
||||
{
|
||||
return __qcom_scm_mem_protect_region_id(__scm->dev, paddr, size);
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ extern void __qcom_scm_mmu_sync(struct device *dev, bool sync);
|
|||
#define QCOM_SCM_MP_RESTORE_SEC_CFG 0x02
|
||||
#define QCOM_SCM_MP_IOMMU_SECURE_PTBL_SIZE 0x03
|
||||
#define QCOM_SCM_MP_IOMMU_SECURE_PTBL_INIT 0x04
|
||||
#define QCOM_SCM_MP_MEM_PROTECT_VIDEO 0x08
|
||||
#define QCOM_SCM_MP_MEM_PROTECT_REGION_ID 0x10
|
||||
#define QCOM_SCM_MP_MEM_PROTECT_LOCK_ID2_FLAT 0x11
|
||||
#define QCOM_SCM_MP_IOMMU_SECURE_MAP2_FLAT 0x12
|
||||
|
|
@ -87,6 +88,9 @@ extern int __qcom_scm_iommu_secure_ptbl_size(struct device *dev, u32 spare,
|
|||
size_t *size);
|
||||
extern int __qcom_scm_iommu_secure_ptbl_init(struct device *dev, u64 addr,
|
||||
u32 size, u32 spare);
|
||||
extern int __qcom_scm_mem_protect_video(struct device *dev,
|
||||
u32 cp_start, u32 cp_size,
|
||||
u32 cp_nonpixel_start, u32 cp_nonpixel_size);
|
||||
extern int __qcom_scm_mem_protect_region_id(struct device *dev,
|
||||
phys_addr_t paddr, size_t size);
|
||||
extern int __qcom_scm_mem_protect_lock_id2_flat(struct device *dev,
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ extern void qcom_scm_mmu_sync(bool sync);
|
|||
extern int qcom_scm_restore_sec_cfg(u32 device_id, u32 spare);
|
||||
extern int qcom_scm_iommu_secure_ptbl_size(u32 spare, size_t *size);
|
||||
extern int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare);
|
||||
extern int qcom_scm_mem_protect_video(u32 cp_start, u32 cp_size,
|
||||
u32 cp_nonpixel_start, u32 cp_nonpixel_size);
|
||||
extern int qcom_scm_mem_protect_region_id(phys_addr_t paddr, size_t size);
|
||||
extern int qcom_scm_mem_protect_lock_id2_flat(phys_addr_t list_addr,
|
||||
size_t list_size, size_t chunk_size,
|
||||
|
|
@ -146,6 +148,9 @@ static inline int qcom_scm_iommu_secure_ptbl_size(u32 spare, size_t *size)
|
|||
{ return -ENODEV; }
|
||||
static inline int qcom_scm_iommu_secure_ptbl_init(u64 addr, u32 size, u32 spare)
|
||||
{ return -ENODEV; }
|
||||
static inline int qcom_scm_mem_protect_video(u32 cp_start, u32 cp_size,
|
||||
u32 cp_nonpixel_start, u32 cp_nonpixel_size)
|
||||
{ return -ENODEV; }
|
||||
static inline int qcom_scm_mem_protect_region_id(phys_addr_t paddr, size_t size)
|
||||
{ return -ENODEV; }
|
||||
static inline int qcom_scm_mem_protect_lock_id2_flat(phys_addr_t list_addr,
|
||||
|
|
|
|||
Loading…
Reference in a new issue