Lines Matching refs:bo
19 struct panfrost_gem_object *bo = to_panfrost_bo(obj); in panfrost_gem_free_object() local
29 list_del_init(&bo->base.madv_list); in panfrost_gem_free_object()
36 WARN_ON_ONCE(!list_empty(&bo->mappings.list)); in panfrost_gem_free_object()
38 if (bo->sgts) { in panfrost_gem_free_object()
40 int n_sgt = bo->base.base.size / SZ_2M; in panfrost_gem_free_object()
43 if (bo->sgts[i].sgl) { in panfrost_gem_free_object()
44 dma_unmap_sgtable(pfdev->dev, &bo->sgts[i], in panfrost_gem_free_object()
46 sg_free_table(&bo->sgts[i]); in panfrost_gem_free_object()
49 kvfree(bo->sgts); in panfrost_gem_free_object()
56 panfrost_gem_mapping_get(struct panfrost_gem_object *bo, in panfrost_gem_mapping_get() argument
61 mutex_lock(&bo->mappings.lock); in panfrost_gem_mapping_get()
62 list_for_each_entry(iter, &bo->mappings.list, node) { in panfrost_gem_mapping_get()
69 mutex_unlock(&bo->mappings.lock); in panfrost_gem_mapping_get()
106 void panfrost_gem_teardown_mappings_locked(struct panfrost_gem_object *bo) in panfrost_gem_teardown_mappings_locked() argument
110 list_for_each_entry(mapping, &bo->mappings.list, node) in panfrost_gem_teardown_mappings_locked()
119 struct panfrost_gem_object *bo = to_panfrost_bo(obj); in panfrost_gem_open() local
120 unsigned long color = bo->noexec ? PANFROST_BO_NOEXEC : 0; in panfrost_gem_open()
131 mapping->obj = bo; in panfrost_gem_open()
139 if (!bo->noexec) in panfrost_gem_open()
152 if (!bo->is_heap) { in panfrost_gem_open()
158 mutex_lock(&bo->mappings.lock); in panfrost_gem_open()
159 WARN_ON(bo->base.madv != PANFROST_MADV_WILLNEED); in panfrost_gem_open()
160 list_add_tail(&mapping->node, &bo->mappings.list); in panfrost_gem_open()
161 mutex_unlock(&bo->mappings.lock); in panfrost_gem_open()
172 struct panfrost_gem_object *bo = to_panfrost_bo(obj); in panfrost_gem_close() local
175 mutex_lock(&bo->mappings.lock); in panfrost_gem_close()
176 list_for_each_entry(iter, &bo->mappings.list, node) { in panfrost_gem_close()
183 mutex_unlock(&bo->mappings.lock); in panfrost_gem_close()
238 struct panfrost_gem_object *bo; in panfrost_gem_create() local
248 bo = to_panfrost_bo(&shmem->base); in panfrost_gem_create()
249 bo->noexec = !!(flags & PANFROST_BO_NOEXEC); in panfrost_gem_create()
250 bo->is_heap = !!(flags & PANFROST_BO_HEAP); in panfrost_gem_create()
252 return bo; in panfrost_gem_create()
261 struct panfrost_gem_object *bo; in panfrost_gem_prime_import_sg_table() local
267 bo = to_panfrost_bo(obj); in panfrost_gem_prime_import_sg_table()
268 bo->noexec = true; in panfrost_gem_prime_import_sg_table()