Lines Matching full:mapping
8 #include <linux/dma-mapping.h>
94 struct panfrost_gem_mapping *iter, *mapping = NULL; in panfrost_gem_mapping_get() local
100 mapping = iter; in panfrost_gem_mapping_get()
106 return mapping; in panfrost_gem_mapping_get()
110 panfrost_gem_teardown_mapping(struct panfrost_gem_mapping *mapping) in panfrost_gem_teardown_mapping() argument
112 if (mapping->active) in panfrost_gem_teardown_mapping()
113 panfrost_mmu_unmap(mapping); in panfrost_gem_teardown_mapping()
115 spin_lock(&mapping->mmu->mm_lock); in panfrost_gem_teardown_mapping()
116 if (drm_mm_node_allocated(&mapping->mmnode)) in panfrost_gem_teardown_mapping()
117 drm_mm_remove_node(&mapping->mmnode); in panfrost_gem_teardown_mapping()
118 spin_unlock(&mapping->mmu->mm_lock); in panfrost_gem_teardown_mapping()
123 struct panfrost_gem_mapping *mapping; in panfrost_gem_mapping_release() local
125 mapping = container_of(kref, struct panfrost_gem_mapping, refcount); in panfrost_gem_mapping_release()
127 panfrost_gem_teardown_mapping(mapping); in panfrost_gem_mapping_release()
128 drm_gem_object_put(&mapping->obj->base.base); in panfrost_gem_mapping_release()
129 panfrost_mmu_ctx_put(mapping->mmu); in panfrost_gem_mapping_release()
130 kfree(mapping); in panfrost_gem_mapping_release()
133 void panfrost_gem_mapping_put(struct panfrost_gem_mapping *mapping) in panfrost_gem_mapping_put() argument
135 if (!mapping) in panfrost_gem_mapping_put()
138 kref_put(&mapping->refcount, panfrost_gem_mapping_release); in panfrost_gem_mapping_put()
143 struct panfrost_gem_mapping *mapping; in panfrost_gem_teardown_mappings_locked() local
145 list_for_each_entry(mapping, &bo->mappings.list, node) in panfrost_gem_teardown_mappings_locked()
146 panfrost_gem_teardown_mapping(mapping); in panfrost_gem_teardown_mappings_locked()
157 struct panfrost_gem_mapping *mapping; in panfrost_gem_open() local
159 mapping = kzalloc(sizeof(*mapping), GFP_KERNEL); in panfrost_gem_open()
160 if (!mapping) in panfrost_gem_open()
163 INIT_LIST_HEAD(&mapping->node); in panfrost_gem_open()
164 kref_init(&mapping->refcount); in panfrost_gem_open()
166 mapping->obj = bo; in panfrost_gem_open()
179 mapping->mmu = panfrost_mmu_ctx_get(priv->mmu); in panfrost_gem_open()
180 spin_lock(&mapping->mmu->mm_lock); in panfrost_gem_open()
181 ret = drm_mm_insert_node_generic(&mapping->mmu->mm, &mapping->mmnode, in panfrost_gem_open()
183 spin_unlock(&mapping->mmu->mm_lock); in panfrost_gem_open()
188 ret = panfrost_mmu_map(mapping); in panfrost_gem_open()
195 list_add_tail(&mapping->node, &bo->mappings.list); in panfrost_gem_open()
200 panfrost_gem_mapping_put(mapping); in panfrost_gem_open()
208 struct panfrost_gem_mapping *mapping = NULL, *iter; in panfrost_gem_close() local
213 mapping = iter; in panfrost_gem_close()
220 panfrost_gem_mapping_put(mapping); in panfrost_gem_close()