Lines Matching full:global
25 unmapped_page = context->global->ops->unmap(context, iova,
45 ret = context->global->ops->map(context, iova, paddr, pgsize,
82 dev_err(context->global->dev,
279 if (context->global->version == ETNAVIV_IOMMU_V1 &&
348 context->global->ops->free(context);
356 etnaviv_iommu_context_init(struct etnaviv_iommu_global *global,
362 if (global->version == ETNAVIV_IOMMU_V1)
363 ctx = etnaviv_iommuv1_context_alloc(global);
365 ctx = etnaviv_iommuv2_context_alloc(global);
371 global->memory_base);
375 if (global->version == ETNAVIV_IOMMU_V1 &&
377 dev_err(global->dev,
387 global->ops->free(ctx);
394 context->global->ops->restore(gpu, context);
416 if (context->global->version == ETNAVIV_IOMMU_V1) {
456 if (mapping->use > 0 || context->global->version == ETNAVIV_IOMMU_V1) {
468 return context->global->ops->dump_size(context);
473 context->global->ops->dump(context, buf);
480 struct etnaviv_iommu_global *global;
489 "MMU version doesn't match global version\n");
497 global = kzalloc(sizeof(*global), GFP_KERNEL);
498 if (!global)
501 global->bad_page_cpu = dma_alloc_wc(dev, SZ_4K, &global->bad_page_dma,
503 if (!global->bad_page_cpu)
506 memset32(global->bad_page_cpu, 0xdead55aa, SZ_4K / sizeof(u32));
509 global->v2.pta_cpu = dma_alloc_wc(dev, ETNAVIV_PTA_SIZE,
510 &global->v2.pta_dma, GFP_KERNEL);
511 if (!global->v2.pta_cpu)
515 global->dev = dev;
516 global->version = version;
517 global->use = 1;
518 mutex_init(&global->lock);
521 global->ops = &etnaviv_iommuv1_ops;
523 global->ops = &etnaviv_iommuv2_ops;
525 priv->mmu_global = global;
530 dma_free_wc(dev, SZ_4K, global->bad_page_cpu, global->bad_page_dma);
532 kfree(global);
540 struct etnaviv_iommu_global *global = priv->mmu_global;
542 if (!global)
545 if (--global->use > 0)
548 if (global->v2.pta_cpu)
549 dma_free_wc(global->dev, ETNAVIV_PTA_SIZE,
550 global->v2.pta_cpu, global->v2.pta_dma);
552 if (global->bad_page_cpu)
553 dma_free_wc(global->dev, SZ_4K,
554 global->bad_page_cpu, global->bad_page_dma);
556 mutex_destroy(&global->lock);
557 kfree(global);