Merge "msm: camera: memmgr: Add support for non pix secure buffers" into camera-kernel.lnx.5.0

This commit is contained in:
Savita Patted
2021-07-08 18:59:30 -07:00
committed by Gerrit - the friendly Code Review server
2 changed files with 15 additions and 1 deletions

View File

@@ -578,6 +578,11 @@ static int cam_mem_util_get_dma_buf(size_t len,
perms[num_vmids] = PERM_READ | PERM_WRITE;
num_vmids++;
}
} else if (cam_flags & CAM_MEM_FLAG_EVA_NOPIXEL) {
heap = tbl.secure_display_heap;
vmids[num_vmids] = VMID_CP_NON_PIXEL;
perms[num_vmids] = PERM_READ | PERM_WRITE;
num_vmids++;
} else if (use_cached_heap) {
try_heap = tbl.camera_heap;
heap = tbl.system_heap;
@@ -618,7 +623,8 @@ static int cam_mem_util_get_dma_buf(size_t len,
}
}
if (cam_flags & CAM_MEM_FLAG_PROTECTED_MODE) {
if ((cam_flags & CAM_MEM_FLAG_PROTECTED_MODE) ||
(cam_flags & CAM_MEM_FLAG_EVA_NOPIXEL)) {
if (num_vmids >= CAM_MAX_VMIDS) {
CAM_ERR(CAM_MEM, "Insufficient array size for vmids %d", num_vmids);
rc = -EINVAL;
@@ -765,6 +771,13 @@ static int cam_mem_util_check_alloc_flags(struct cam_mem_mgr_alloc_cmd *cmd)
return -EINVAL;
}
if ((cmd->flags & CAM_MEM_FLAG_EVA_NOPIXEL) &&
(cmd->flags & CAM_MEM_FLAG_PROTECTED_MODE ||
cmd->flags & CAM_MEM_FLAG_KMD_ACCESS)){
CAM_ERR(CAM_MEM,
"Kernel mapping and secure mode not allowed in no pixel mode");
return -EINVAL;
}
return 0;
}

View File

@@ -291,6 +291,7 @@ struct cam_req_mgr_link_control {
#define CAM_MEM_FLAG_CDSP_OUTPUT (1<<12)
#define CAM_MEM_FLAG_DISABLE_DELAYED_UNMAP (1<<13)
#define CAM_MEM_FLAG_KMD_DEBUG_FLAG (1<<14)
#define CAM_MEM_FLAG_EVA_NOPIXEL (1<<15)
#define CAM_MEM_MMU_MAX_HANDLE 16