Lines Matching refs:page_table
454 u32 *page_table; in sun50i_iommu_alloc_page_table() local
456 page_table = kmem_cache_zalloc(iommu->pt_pool, gfp); in sun50i_iommu_alloc_page_table()
457 if (!page_table) in sun50i_iommu_alloc_page_table()
460 pt_dma = dma_map_single(iommu->dev, page_table, PT_SIZE, DMA_TO_DEVICE); in sun50i_iommu_alloc_page_table()
463 kmem_cache_free(iommu->pt_pool, page_table); in sun50i_iommu_alloc_page_table()
468 WARN_ON(pt_dma != virt_to_phys(page_table)); in sun50i_iommu_alloc_page_table()
470 return page_table; in sun50i_iommu_alloc_page_table()
474 u32 *page_table) in sun50i_iommu_free_page_table() argument
476 phys_addr_t pt_phys = virt_to_phys(page_table); in sun50i_iommu_free_page_table()
479 kmem_cache_free(iommu->pt_pool, page_table); in sun50i_iommu_free_page_table()
486 u32 *page_table; in sun50i_dte_get_page_table() local
498 page_table = sun50i_iommu_alloc_page_table(iommu, gfp); in sun50i_dte_get_page_table()
499 if (IS_ERR(page_table)) in sun50i_dte_get_page_table()
500 return page_table; in sun50i_dte_get_page_table()
502 dte = sun50i_mk_dte(virt_to_phys(page_table)); in sun50i_dte_get_page_table()
508 u32 *drop_pt = page_table; in sun50i_dte_get_page_table()
510 page_table = installed_pt; in sun50i_dte_get_page_table()
515 sun50i_table_flush(sun50i_domain, page_table, PT_SIZE); in sun50i_dte_get_page_table()
518 return page_table; in sun50i_dte_get_page_table()
527 u32 *page_table, *pte_addr; in sun50i_iommu_map() local
530 page_table = sun50i_dte_get_page_table(sun50i_domain, iova, gfp); in sun50i_iommu_map()
531 if (IS_ERR(page_table)) { in sun50i_iommu_map()
532 ret = PTR_ERR(page_table); in sun50i_iommu_map()
537 pte_addr = &page_table[pte_index]; in sun50i_iommu_map()
583 u32 *page_table; in sun50i_iommu_iova_to_phys() local
591 page_table = (u32 *)phys_to_virt(pt_phys); in sun50i_iommu_iova_to_phys()
592 pte = page_table[sun50i_iova_get_pte_index(iova)]; in sun50i_iommu_iova_to_phys()
675 u32 *page_table; in sun50i_iommu_detach_domain() local
688 page_table = phys_to_virt(pt_phys); in sun50i_iommu_detach_domain()
689 sun50i_iommu_free_page_table(iommu, page_table); in sun50i_iommu_detach_domain()