Lines Matching refs:ptep

302 static void __arm_v7s_pte_sync(arm_v7s_iopte *ptep, int num_entries,  in __arm_v7s_pte_sync()  argument
308 dma_sync_single_for_device(cfg->iommu_dev, __arm_v7s_dma_addr(ptep), in __arm_v7s_pte_sync()
309 num_entries * sizeof(*ptep), DMA_TO_DEVICE); in __arm_v7s_pte_sync()
311 static void __arm_v7s_set_pte(arm_v7s_iopte *ptep, arm_v7s_iopte pte, in __arm_v7s_set_pte() argument
317 ptep[i] = pte; in __arm_v7s_set_pte()
319 __arm_v7s_pte_sync(ptep, num_entries, cfg); in __arm_v7s_set_pte()
420 int lvl, int num_entries, arm_v7s_iopte *ptep) in arm_v7s_init_pte() argument
427 if (ARM_V7S_PTE_IS_TABLE(ptep[i], lvl)) { in arm_v7s_init_pte()
435 tblp = ptep - ARM_V7S_LVL_IDX(iova, lvl, cfg); in arm_v7s_init_pte()
439 } else if (ptep[i]) { in arm_v7s_init_pte()
451 __arm_v7s_set_pte(ptep, pte, num_entries, cfg); in arm_v7s_init_pte()
456 arm_v7s_iopte *ptep, in arm_v7s_install_table() argument
473 old = cmpxchg_relaxed(ptep, curr, new); in arm_v7s_install_table()
474 __arm_v7s_pte_sync(ptep, 1, cfg); in arm_v7s_install_table()
481 int lvl, arm_v7s_iopte *ptep, gfp_t gfp) in __arm_v7s_map() argument
488 ptep += ARM_V7S_LVL_IDX(iova, lvl, cfg); in __arm_v7s_map()
493 lvl, num_entries, ptep); in __arm_v7s_map()
500 pte = READ_ONCE(*ptep); in __arm_v7s_map()
506 pte = arm_v7s_install_table(cptep, ptep, 0, cfg); in __arm_v7s_map()
511 __arm_v7s_pte_sync(ptep, 1, cfg); in __arm_v7s_map()
586 arm_v7s_iopte *ptep) in arm_v7s_split_cont() argument
594 pte = *ptep; in arm_v7s_split_cont()
598 ptep -= idx & (ARM_V7S_CONT_PAGES - 1); in arm_v7s_split_cont()
601 ptep[i] = pte + i * size; in arm_v7s_split_cont()
603 __arm_v7s_pte_sync(ptep, ARM_V7S_CONT_PAGES, &iop->cfg); in arm_v7s_split_cont()
614 arm_v7s_iopte *ptep) in arm_v7s_split_blk_unmap() argument
640 pte = arm_v7s_install_table(tablep, ptep, blk_pte, cfg); in arm_v7s_split_blk_unmap()
658 arm_v7s_iopte *ptep) in __arm_v7s_unmap() argument
669 ptep += idx; in __arm_v7s_unmap()
671 pte[i] = READ_ONCE(ptep[i]); in __arm_v7s_unmap()
690 pte[0] = arm_v7s_split_cont(data, iova, idx, lvl, ptep); in __arm_v7s_unmap()
698 __arm_v7s_set_pte(ptep, 0, num_entries, &iop->cfg); in __arm_v7s_unmap()
705 ptep = iopte_deref(pte[i], lvl, data); in __arm_v7s_unmap()
706 __arm_v7s_free_table(ptep, lvl + 1, data); in __arm_v7s_unmap()
726 ptep); in __arm_v7s_unmap()
730 ptep = iopte_deref(pte[0], lvl, data); in __arm_v7s_unmap()
731 return __arm_v7s_unmap(data, gather, iova, size, lvl + 1, ptep); in __arm_v7s_unmap()
766 arm_v7s_iopte *ptep = data->pgd, pte; in arm_v7s_iova_to_phys() local
771 ptep += ARM_V7S_LVL_IDX(iova, ++lvl, &data->iop.cfg); in arm_v7s_iova_to_phys()
772 pte = READ_ONCE(*ptep); in arm_v7s_iova_to_phys()
773 ptep = iopte_deref(pte, lvl, data); in arm_v7s_iova_to_phys()