Lines Matching refs:global
29 unmapped_page = context->global->ops->unmap(context, iova,
55 ret = context->global->ops->map(context, iova, paddr, pgsize,
237 if (context->global->version == ETNAVIV_IOMMU_V1 &&
307 context->global->ops->free(context);
315 etnaviv_iommu_context_init(struct etnaviv_iommu_global *global,
321 if (global->version == ETNAVIV_IOMMU_V1)
322 ctx = etnaviv_iommuv1_context_alloc(global);
324 ctx = etnaviv_iommuv2_context_alloc(global);
330 global->memory_base);
334 if (global->version == ETNAVIV_IOMMU_V1 &&
336 dev_err(global->dev,
346 global->ops->free(ctx);
353 context->global->ops->restore(gpu, context);
375 if (context->global->version == ETNAVIV_IOMMU_V1) {
415 if (mapping->use > 0 || context->global->version == ETNAVIV_IOMMU_V1) {
427 return context->global->ops->dump_size(context);
432 context->global->ops->dump(context, buf);
439 struct etnaviv_iommu_global *global;
448 "MMU version doesn't match global version\n");
456 global = kzalloc(sizeof(*global), GFP_KERNEL);
457 if (!global)
460 global->bad_page_cpu = dma_alloc_wc(dev, SZ_4K, &global->bad_page_dma,
462 if (!global->bad_page_cpu)
465 memset32(global->bad_page_cpu, 0xdead55aa, SZ_4K / sizeof(u32));
468 global->v2.pta_cpu = dma_alloc_wc(dev, ETNAVIV_PTA_SIZE,
469 &global->v2.pta_dma, GFP_KERNEL);
470 if (!global->v2.pta_cpu)
474 global->dev = dev;
475 global->version = version;
476 global->use = 1;
477 mutex_init(&global->lock);
480 global->ops = &etnaviv_iommuv1_ops;
482 global->ops = &etnaviv_iommuv2_ops;
484 priv->mmu_global = global;
489 dma_free_wc(dev, SZ_4K, global->bad_page_cpu, global->bad_page_dma);
491 kfree(global);
499 struct etnaviv_iommu_global *global = priv->mmu_global;
501 if (--global->use > 0)
504 if (global->v2.pta_cpu)
505 dma_free_wc(global->dev, ETNAVIV_PTA_SIZE,
506 global->v2.pta_cpu, global->v2.pta_dma);
508 if (global->bad_page_cpu)
509 dma_free_wc(global->dev, SZ_4K,
510 global->bad_page_cpu, global->bad_page_dma);
512 mutex_destroy(&global->lock);
513 kfree(global);