Lines Matching refs:page_table

453 	u32 *page_table;  in sun50i_iommu_alloc_page_table()  local
455 page_table = kmem_cache_zalloc(iommu->pt_pool, gfp); in sun50i_iommu_alloc_page_table()
456 if (!page_table) in sun50i_iommu_alloc_page_table()
459 pt_dma = dma_map_single(iommu->dev, page_table, PT_SIZE, DMA_TO_DEVICE); in sun50i_iommu_alloc_page_table()
462 kmem_cache_free(iommu->pt_pool, page_table); in sun50i_iommu_alloc_page_table()
467 WARN_ON(pt_dma != virt_to_phys(page_table)); in sun50i_iommu_alloc_page_table()
469 return page_table; in sun50i_iommu_alloc_page_table()
473 u32 *page_table) in sun50i_iommu_free_page_table() argument
475 phys_addr_t pt_phys = virt_to_phys(page_table); in sun50i_iommu_free_page_table()
478 kmem_cache_free(iommu->pt_pool, page_table); in sun50i_iommu_free_page_table()
485 u32 *page_table; in sun50i_dte_get_page_table() local
497 page_table = sun50i_iommu_alloc_page_table(iommu, gfp); in sun50i_dte_get_page_table()
498 if (IS_ERR(page_table)) in sun50i_dte_get_page_table()
499 return page_table; in sun50i_dte_get_page_table()
501 dte = sun50i_mk_dte(virt_to_phys(page_table)); in sun50i_dte_get_page_table()
507 u32 *drop_pt = page_table; in sun50i_dte_get_page_table()
509 page_table = installed_pt; in sun50i_dte_get_page_table()
514 sun50i_table_flush(sun50i_domain, page_table, PT_SIZE); in sun50i_dte_get_page_table()
517 return page_table; in sun50i_dte_get_page_table()
526 u32 *page_table, *pte_addr; in sun50i_iommu_map() local
529 page_table = sun50i_dte_get_page_table(sun50i_domain, iova, gfp); in sun50i_iommu_map()
530 if (IS_ERR(page_table)) { in sun50i_iommu_map()
531 ret = PTR_ERR(page_table); in sun50i_iommu_map()
536 pte_addr = &page_table[pte_index]; in sun50i_iommu_map()
582 u32 *page_table; in sun50i_iommu_iova_to_phys() local
590 page_table = (u32 *)phys_to_virt(pt_phys); in sun50i_iommu_iova_to_phys()
591 pte = page_table[sun50i_iova_get_pte_index(iova)]; in sun50i_iommu_iova_to_phys()
664 u32 *page_table; in sun50i_iommu_detach_domain() local
677 page_table = phys_to_virt(pt_phys); in sun50i_iommu_detach_domain()
678 sun50i_iommu_free_page_table(iommu, page_table); in sun50i_iommu_detach_domain()