Lines Matching refs:global

29 		unmapped_page = context->global->ops->unmap(context, iova,
55 ret = context->global->ops->map(context, iova, paddr, pgsize,
291 if (context->global->version == ETNAVIV_IOMMU_V1 &&
362 context->global->ops->free(context);
370 etnaviv_iommu_context_init(struct etnaviv_iommu_global *global,
376 if (global->version == ETNAVIV_IOMMU_V1)
377 ctx = etnaviv_iommuv1_context_alloc(global);
379 ctx = etnaviv_iommuv2_context_alloc(global);
385 global->memory_base);
389 if (global->version == ETNAVIV_IOMMU_V1 &&
391 dev_err(global->dev,
401 global->ops->free(ctx);
408 context->global->ops->restore(gpu, context);
430 if (context->global->version == ETNAVIV_IOMMU_V1) {
470 if (mapping->use > 0 || context->global->version == ETNAVIV_IOMMU_V1) {
482 return context->global->ops->dump_size(context);
487 context->global->ops->dump(context, buf);
494 struct etnaviv_iommu_global *global;
503 "MMU version doesn't match global version\n");
511 global = kzalloc(sizeof(*global), GFP_KERNEL);
512 if (!global)
515 global->bad_page_cpu = dma_alloc_wc(dev, SZ_4K, &global->bad_page_dma,
517 if (!global->bad_page_cpu)
520 memset32(global->bad_page_cpu, 0xdead55aa, SZ_4K / sizeof(u32));
523 global->v2.pta_cpu = dma_alloc_wc(dev, ETNAVIV_PTA_SIZE,
524 &global->v2.pta_dma, GFP_KERNEL);
525 if (!global->v2.pta_cpu)
529 global->dev = dev;
530 global->version = version;
531 global->use = 1;
532 mutex_init(&global->lock);
535 global->ops = &etnaviv_iommuv1_ops;
537 global->ops = &etnaviv_iommuv2_ops;
539 priv->mmu_global = global;
544 dma_free_wc(dev, SZ_4K, global->bad_page_cpu, global->bad_page_dma);
546 kfree(global);
554 struct etnaviv_iommu_global *global = priv->mmu_global;
556 if (!global)
559 if (--global->use > 0)
562 if (global->v2.pta_cpu)
563 dma_free_wc(global->dev, ETNAVIV_PTA_SIZE,
564 global->v2.pta_cpu, global->v2.pta_dma);
566 if (global->bad_page_cpu)
567 dma_free_wc(global->dev, SZ_4K,
568 global->bad_page_cpu, global->bad_page_dma);
570 mutex_destroy(&global->lock);
571 kfree(global);