Lines Matching refs:mapping

7 #include <linux/dma-mapping.h>
59 struct panfrost_gem_mapping *iter, *mapping = NULL;
65 mapping = iter;
71 return mapping;
75 panfrost_gem_teardown_mapping(struct panfrost_gem_mapping *mapping)
77 if (mapping->active)
78 panfrost_mmu_unmap(mapping);
80 spin_lock(&mapping->mmu->mm_lock);
81 if (drm_mm_node_allocated(&mapping->mmnode))
82 drm_mm_remove_node(&mapping->mmnode);
83 spin_unlock(&mapping->mmu->mm_lock);
88 struct panfrost_gem_mapping *mapping;
90 mapping = container_of(kref, struct panfrost_gem_mapping, refcount);
92 panfrost_gem_teardown_mapping(mapping);
93 drm_gem_object_put(&mapping->obj->base.base);
94 panfrost_mmu_ctx_put(mapping->mmu);
95 kfree(mapping);
98 void panfrost_gem_mapping_put(struct panfrost_gem_mapping *mapping)
100 if (!mapping)
103 kref_put(&mapping->refcount, panfrost_gem_mapping_release);
108 struct panfrost_gem_mapping *mapping;
110 list_for_each_entry(mapping, &bo->mappings.list, node)
111 panfrost_gem_teardown_mapping(mapping);
122 struct panfrost_gem_mapping *mapping;
124 mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
125 if (!mapping)
128 INIT_LIST_HEAD(&mapping->node);
129 kref_init(&mapping->refcount);
131 mapping->obj = bo;
144 mapping->mmu = panfrost_mmu_ctx_get(priv->mmu);
145 spin_lock(&mapping->mmu->mm_lock);
146 ret = drm_mm_insert_node_generic(&mapping->mmu->mm, &mapping->mmnode,
148 spin_unlock(&mapping->mmu->mm_lock);
153 ret = panfrost_mmu_map(mapping);
160 list_add_tail(&mapping->node, &bo->mappings.list);
165 panfrost_gem_mapping_put(mapping);
173 struct panfrost_gem_mapping *mapping = NULL, *iter;
178 mapping = iter;
185 panfrost_gem_mapping_put(mapping);