msm: eva: Deprecate secure heap reference
Use mem_buf_lend to assign system memory to secure VM. Change-Id: I6a09e65ddb72dbd6eadd6a88ae56df5430825c9e Signed-off-by: George Shen <sqiao@codeaurora.org>
This commit is contained in:
@@ -262,6 +262,9 @@ static int alloc_dma_mem(size_t size, u32 align, int map_kernel,
|
|||||||
int rc = 0;
|
int rc = 0;
|
||||||
struct dma_buf *dbuf = NULL;
|
struct dma_buf *dbuf = NULL;
|
||||||
struct dma_heap *heap = NULL;
|
struct dma_heap *heap = NULL;
|
||||||
|
struct mem_buf_lend_kernel_arg arg;
|
||||||
|
int vmids[1];
|
||||||
|
int perms[1];
|
||||||
|
|
||||||
if (!res) {
|
if (!res) {
|
||||||
dprintk(CVP_ERR, "%s: NULL res\n", __func__);
|
dprintk(CVP_ERR, "%s: NULL res\n", __func__);
|
||||||
@@ -281,20 +284,34 @@ static int alloc_dma_mem(size_t size, u32 align, int map_kernel,
|
|||||||
size, align);
|
size, align);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mem->flags & SMEM_NON_PIXEL)
|
|
||||||
heap = dma_heap_find("qcom,secure-non-pixel");
|
|
||||||
else if (mem->flags & SMEM_PIXEL)
|
|
||||||
heap = dma_heap_find("qcom,secure-pixel");
|
|
||||||
|
|
||||||
dbuf = dma_heap_buffer_alloc(heap, size, 0, 0);
|
dbuf = dma_heap_buffer_alloc(heap, size, 0, 0);
|
||||||
if (IS_ERR_OR_NULL(dbuf)) {
|
if (IS_ERR_OR_NULL(dbuf)) {
|
||||||
dprintk(CVP_ERR,
|
dprintk(CVP_ERR,
|
||||||
"Failed to allocate shared memory = %x bytes, %x %x\n",
|
"Failed to allocate shared memory = %x bytes, %x %x\n",
|
||||||
size, mem->flags, PTR_ERR(dbuf));
|
size, mem->flags, PTR_ERR(dbuf));
|
||||||
rc = -ENOMEM;
|
rc = -ENOMEM;
|
||||||
goto fail_shared_mem_alloc;
|
goto fail_shared_mem_alloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
perms[0] = PERM_READ | PERM_WRITE;
|
||||||
|
arg.nr_acl_entries = 1;
|
||||||
|
arg.vmids = vmids;
|
||||||
|
arg.perms = perms;
|
||||||
|
|
||||||
|
if (mem->flags & SMEM_NON_PIXEL) {
|
||||||
|
vmids[0] = VMID_CP_NON_PIXEL;
|
||||||
|
rc = mem_buf_lend(dbuf, &arg);
|
||||||
|
} else if (mem->flags & SMEM_PIXEL) {
|
||||||
|
vmids[0] = VMID_CP_PIXEL;
|
||||||
|
rc = mem_buf_lend(dbuf, &arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rc) {
|
||||||
|
dprintk(CVP_ERR, "Failed to lend dmabuf %d, vmid %d\n",
|
||||||
|
rc, vmids[0]);
|
||||||
|
goto fail_device_address;
|
||||||
|
}
|
||||||
|
|
||||||
if (!gfa_cv.dmabuf_f_op)
|
if (!gfa_cv.dmabuf_f_op)
|
||||||
gfa_cv.dmabuf_f_op = (const struct file_operations *)dbuf->file->f_op;
|
gfa_cv.dmabuf_f_op = (const struct file_operations *)dbuf->file->f_op;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user