Lines Matching full:global
23 unmapped_page = context->global->ops->unmap(context, iova, in etnaviv_context_unmap()
43 ret = context->global->ops->map(context, iova, paddr, pgsize, in etnaviv_context_map()
80 dev_err(context->global->dev, in etnaviv_iommu_map()
277 if (context->global->version == ETNAVIV_IOMMU_V1 && in etnaviv_iommu_map_gem()
346 context->global->ops->free(context); in etnaviv_iommu_context_free()
354 etnaviv_iommu_context_init(struct etnaviv_iommu_global *global, in etnaviv_iommu_context_init() argument
360 if (global->version == ETNAVIV_IOMMU_V1) in etnaviv_iommu_context_init()
361 ctx = etnaviv_iommuv1_context_alloc(global); in etnaviv_iommu_context_init()
363 ctx = etnaviv_iommuv2_context_alloc(global); in etnaviv_iommu_context_init()
369 global->memory_base); in etnaviv_iommu_context_init()
373 if (global->version == ETNAVIV_IOMMU_V1 && in etnaviv_iommu_context_init()
375 dev_err(global->dev, in etnaviv_iommu_context_init()
385 global->ops->free(ctx); in etnaviv_iommu_context_init()
392 context->global->ops->restore(gpu, context); in etnaviv_iommu_restore()
414 if (context->global->version == ETNAVIV_IOMMU_V1) { in etnaviv_iommu_get_suballoc_va()
454 if (mapping->use > 0 || context->global->version == ETNAVIV_IOMMU_V1) { in etnaviv_iommu_put_suballoc_va()
466 return context->global->ops->dump_size(context); in etnaviv_iommu_dump_size()
471 context->global->ops->dump(context, buf); in etnaviv_iommu_dump()
478 struct etnaviv_iommu_global *global; in etnaviv_iommu_global_init() local
487 "MMU version doesn't match global version\n"); in etnaviv_iommu_global_init()
495 global = kzalloc(sizeof(*global), GFP_KERNEL); in etnaviv_iommu_global_init()
496 if (!global) in etnaviv_iommu_global_init()
499 global->bad_page_cpu = dma_alloc_wc(dev, SZ_4K, &global->bad_page_dma, in etnaviv_iommu_global_init()
501 if (!global->bad_page_cpu) in etnaviv_iommu_global_init()
504 memset32(global->bad_page_cpu, 0xdead55aa, SZ_4K / sizeof(u32)); in etnaviv_iommu_global_init()
507 global->v2.pta_cpu = dma_alloc_wc(dev, ETNAVIV_PTA_SIZE, in etnaviv_iommu_global_init()
508 &global->v2.pta_dma, GFP_KERNEL); in etnaviv_iommu_global_init()
509 if (!global->v2.pta_cpu) in etnaviv_iommu_global_init()
513 global->dev = dev; in etnaviv_iommu_global_init()
514 global->version = version; in etnaviv_iommu_global_init()
515 global->use = 1; in etnaviv_iommu_global_init()
516 mutex_init(&global->lock); in etnaviv_iommu_global_init()
519 global->ops = &etnaviv_iommuv1_ops; in etnaviv_iommu_global_init()
521 global->ops = &etnaviv_iommuv2_ops; in etnaviv_iommu_global_init()
523 priv->mmu_global = global; in etnaviv_iommu_global_init()
528 dma_free_wc(dev, SZ_4K, global->bad_page_cpu, global->bad_page_dma); in etnaviv_iommu_global_init()
530 kfree(global); in etnaviv_iommu_global_init()
538 struct etnaviv_iommu_global *global = priv->mmu_global; in etnaviv_iommu_global_fini() local
540 if (!global) in etnaviv_iommu_global_fini()
543 if (--global->use > 0) in etnaviv_iommu_global_fini()
546 if (global->v2.pta_cpu) in etnaviv_iommu_global_fini()
547 dma_free_wc(global->dev, ETNAVIV_PTA_SIZE, in etnaviv_iommu_global_fini()
548 global->v2.pta_cpu, global->v2.pta_dma); in etnaviv_iommu_global_fini()
550 if (global->bad_page_cpu) in etnaviv_iommu_global_fini()
551 dma_free_wc(global->dev, SZ_4K, in etnaviv_iommu_global_fini()
552 global->bad_page_cpu, global->bad_page_dma); in etnaviv_iommu_global_fini()
554 mutex_destroy(&global->lock); in etnaviv_iommu_global_fini()
555 kfree(global); in etnaviv_iommu_global_fini()