Lines Matching refs:page_table

524 	u32 *page_table;  in sun50i_iommu_alloc_page_table()  local
526 page_table = kmem_cache_zalloc(iommu->pt_pool, gfp); in sun50i_iommu_alloc_page_table()
527 if (!page_table) in sun50i_iommu_alloc_page_table()
530 pt_dma = dma_map_single(iommu->dev, page_table, PT_SIZE, DMA_TO_DEVICE); in sun50i_iommu_alloc_page_table()
533 kmem_cache_free(iommu->pt_pool, page_table); in sun50i_iommu_alloc_page_table()
538 WARN_ON(pt_dma != virt_to_phys(page_table)); in sun50i_iommu_alloc_page_table()
540 return page_table; in sun50i_iommu_alloc_page_table()
544 u32 *page_table) in sun50i_iommu_free_page_table() argument
546 phys_addr_t pt_phys = virt_to_phys(page_table); in sun50i_iommu_free_page_table()
549 kmem_cache_free(iommu->pt_pool, page_table); in sun50i_iommu_free_page_table()
556 u32 *page_table; in sun50i_dte_get_page_table() local
568 page_table = sun50i_iommu_alloc_page_table(iommu, gfp); in sun50i_dte_get_page_table()
569 if (IS_ERR(page_table)) in sun50i_dte_get_page_table()
570 return page_table; in sun50i_dte_get_page_table()
572 dte = sun50i_mk_dte(virt_to_phys(page_table)); in sun50i_dte_get_page_table()
578 u32 *drop_pt = page_table; in sun50i_dte_get_page_table()
580 page_table = installed_pt; in sun50i_dte_get_page_table()
585 sun50i_table_flush(sun50i_domain, page_table, NUM_PT_ENTRIES); in sun50i_dte_get_page_table()
588 return page_table; in sun50i_dte_get_page_table()
597 u32 *page_table, *pte_addr; in sun50i_iommu_map() local
600 page_table = sun50i_dte_get_page_table(sun50i_domain, iova, gfp); in sun50i_iommu_map()
601 if (IS_ERR(page_table)) { in sun50i_iommu_map()
602 ret = PTR_ERR(page_table); in sun50i_iommu_map()
607 pte_addr = &page_table[pte_index]; in sun50i_iommu_map()
653 u32 *page_table; in sun50i_iommu_iova_to_phys() local
661 page_table = (u32 *)phys_to_virt(pt_phys); in sun50i_iommu_iova_to_phys()
662 pte = page_table[sun50i_iova_get_pte_index(iova)]; in sun50i_iommu_iova_to_phys()
734 u32 *page_table; in sun50i_iommu_detach_domain() local
747 page_table = phys_to_virt(pt_phys); in sun50i_iommu_detach_domain()
748 sun50i_iommu_free_page_table(iommu, page_table); in sun50i_iommu_detach_domain()