Lines Matching refs:area
59 static int qcom_tzmem_init_area(struct qcom_tzmem_area *area) in qcom_tzmem_init_area() argument
64 static void qcom_tzmem_cleanup_area(struct qcom_tzmem_area *area) in qcom_tzmem_cleanup_area() argument
112 static int qcom_tzmem_init_area(struct qcom_tzmem_area *area) in qcom_tzmem_init_area() argument
120 pfn_and_ns_perm = (u64)area->paddr | QCOM_SCM_PERM_RW; in qcom_tzmem_init_area()
121 ipfn_and_s_perm = (u64)area->paddr | QCOM_SCM_PERM_RW; in qcom_tzmem_init_area()
122 size_and_flags = area->size | (1 << QCOM_SHM_BRIDGE_NUM_VM_SHIFT); in qcom_tzmem_init_area()
134 area->priv = no_free_ptr(handle); in qcom_tzmem_init_area()
139 static void qcom_tzmem_cleanup_area(struct qcom_tzmem_area *area) in qcom_tzmem_cleanup_area() argument
141 u64 *handle = area->priv; in qcom_tzmem_cleanup_area()
157 struct qcom_tzmem_area *area __free(kfree) = kzalloc(sizeof(*area), in qcom_tzmem_pool_add_memory()
159 if (!area) in qcom_tzmem_pool_add_memory()
162 area->size = PAGE_ALIGN(size); in qcom_tzmem_pool_add_memory()
164 area->vaddr = dma_alloc_coherent(qcom_tzmem_dev, area->size, in qcom_tzmem_pool_add_memory()
165 &area->paddr, gfp); in qcom_tzmem_pool_add_memory()
166 if (!area->vaddr) in qcom_tzmem_pool_add_memory()
169 ret = qcom_tzmem_init_area(area); in qcom_tzmem_pool_add_memory()
171 dma_free_coherent(qcom_tzmem_dev, area->size, in qcom_tzmem_pool_add_memory()
172 area->vaddr, area->paddr); in qcom_tzmem_pool_add_memory()
176 ret = gen_pool_add_virt(pool->genpool, (unsigned long)area->vaddr, in qcom_tzmem_pool_add_memory()
177 (phys_addr_t)area->paddr, size, -1); in qcom_tzmem_pool_add_memory()
179 dma_free_coherent(qcom_tzmem_dev, area->size, in qcom_tzmem_pool_add_memory()
180 area->vaddr, area->paddr); in qcom_tzmem_pool_add_memory()
185 list_add_tail(&area->list, &pool->areas); in qcom_tzmem_pool_add_memory()
187 area = NULL; in qcom_tzmem_pool_add_memory()
262 struct qcom_tzmem_area *area, *next; in qcom_tzmem_pool_free() local
285 list_for_each_entry_safe(area, next, &pool->areas, list) { in qcom_tzmem_pool_free()
286 list_del(&area->list); in qcom_tzmem_pool_free()
287 qcom_tzmem_cleanup_area(area); in qcom_tzmem_pool_free()
288 dma_free_coherent(qcom_tzmem_dev, area->size, in qcom_tzmem_pool_free()
289 area->vaddr, area->paddr); in qcom_tzmem_pool_free()
290 kfree(area); in qcom_tzmem_pool_free()