• Home
  • Raw
  • Download

Lines Matching full:mapping

227 	struct etnaviv_vram_mapping *mapping;  in etnaviv_gem_get_vram_mapping()  local
229 list_for_each_entry(mapping, &obj->vram_list, obj_node) { in etnaviv_gem_get_vram_mapping()
230 if (mapping->mmu == mmu) in etnaviv_gem_get_vram_mapping()
231 return mapping; in etnaviv_gem_get_vram_mapping()
237 void etnaviv_gem_mapping_reference(struct etnaviv_vram_mapping *mapping) in etnaviv_gem_mapping_reference() argument
239 struct etnaviv_gem_object *etnaviv_obj = mapping->object; in etnaviv_gem_mapping_reference()
244 WARN_ON(mapping->use == 0); in etnaviv_gem_mapping_reference()
245 mapping->use += 1; in etnaviv_gem_mapping_reference()
249 void etnaviv_gem_mapping_unreference(struct etnaviv_vram_mapping *mapping) in etnaviv_gem_mapping_unreference() argument
251 struct etnaviv_gem_object *etnaviv_obj = mapping->object; in etnaviv_gem_mapping_unreference()
254 WARN_ON(mapping->use == 0); in etnaviv_gem_mapping_unreference()
255 mapping->use -= 1; in etnaviv_gem_mapping_unreference()
265 struct etnaviv_vram_mapping *mapping; in etnaviv_gem_mapping_get() local
270 mapping = etnaviv_gem_get_vram_mapping(etnaviv_obj, gpu->mmu); in etnaviv_gem_mapping_get()
271 if (mapping) { in etnaviv_gem_mapping_get()
276 * the MMU owns this mapping to close this race. in etnaviv_gem_mapping_get()
278 if (mapping->use == 0) { in etnaviv_gem_mapping_get()
280 if (mapping->mmu == gpu->mmu) in etnaviv_gem_mapping_get()
281 mapping->use += 1; in etnaviv_gem_mapping_get()
283 mapping = NULL; in etnaviv_gem_mapping_get()
285 if (mapping) in etnaviv_gem_mapping_get()
288 mapping->use += 1; in etnaviv_gem_mapping_get()
300 * See if we have a reaped vram mapping we can re-use before in etnaviv_gem_mapping_get()
301 * allocating a fresh mapping. in etnaviv_gem_mapping_get()
303 mapping = etnaviv_gem_get_vram_mapping(etnaviv_obj, NULL); in etnaviv_gem_mapping_get()
304 if (!mapping) { in etnaviv_gem_mapping_get()
305 mapping = kzalloc(sizeof(*mapping), GFP_KERNEL); in etnaviv_gem_mapping_get()
306 if (!mapping) { in etnaviv_gem_mapping_get()
311 INIT_LIST_HEAD(&mapping->scan_node); in etnaviv_gem_mapping_get()
312 mapping->object = etnaviv_obj; in etnaviv_gem_mapping_get()
314 list_del(&mapping->obj_node); in etnaviv_gem_mapping_get()
317 mapping->mmu = gpu->mmu; in etnaviv_gem_mapping_get()
318 mapping->use = 1; in etnaviv_gem_mapping_get()
321 mapping); in etnaviv_gem_mapping_get()
323 kfree(mapping); in etnaviv_gem_mapping_get()
325 list_add_tail(&mapping->obj_node, &etnaviv_obj->vram_list); in etnaviv_gem_mapping_get()
335 return mapping; in etnaviv_gem_mapping_get()
528 struct etnaviv_vram_mapping *mapping, *tmp; in etnaviv_gem_free_object() local
537 list_for_each_entry_safe(mapping, tmp, &etnaviv_obj->vram_list, in etnaviv_gem_free_object()
539 struct etnaviv_iommu *mmu = mapping->mmu; in etnaviv_gem_free_object()
541 WARN_ON(mapping->use); in etnaviv_gem_free_object()
544 etnaviv_iommu_unmap_gem(mmu, mapping); in etnaviv_gem_free_object()
546 list_del(&mapping->obj_node); in etnaviv_gem_free_object()
547 kfree(mapping); in etnaviv_gem_free_object()
632 struct address_space *mapping; in etnaviv_gem_new_handle() local
641 mapping = obj->filp->f_mapping; in etnaviv_gem_new_handle()
642 mapping_set_gfp_mask(mapping, GFP_HIGHUSER | in etnaviv_gem_new_handle()