Lines Matching refs:ptep

250 static void __arm_v7s_pte_sync(arm_v7s_iopte *ptep, int num_entries,  in __arm_v7s_pte_sync()  argument
256 dma_sync_single_for_device(cfg->iommu_dev, __arm_v7s_dma_addr(ptep), in __arm_v7s_pte_sync()
257 num_entries * sizeof(*ptep), DMA_TO_DEVICE); in __arm_v7s_pte_sync()
259 static void __arm_v7s_set_pte(arm_v7s_iopte *ptep, arm_v7s_iopte pte, in __arm_v7s_set_pte() argument
265 ptep[i] = pte; in __arm_v7s_set_pte()
267 __arm_v7s_pte_sync(ptep, num_entries, cfg); in __arm_v7s_set_pte()
370 int lvl, int num_entries, arm_v7s_iopte *ptep) in arm_v7s_init_pte() argument
377 if (ARM_V7S_PTE_IS_TABLE(ptep[i], lvl)) { in arm_v7s_init_pte()
385 tblp = ptep - ARM_V7S_LVL_IDX(iova, lvl); in arm_v7s_init_pte()
389 } else if (ptep[i]) { in arm_v7s_init_pte()
401 __arm_v7s_set_pte(ptep, pte, num_entries, cfg); in arm_v7s_init_pte()
406 arm_v7s_iopte *ptep, in arm_v7s_install_table() argument
423 old = cmpxchg_relaxed(ptep, curr, new); in arm_v7s_install_table()
424 __arm_v7s_pte_sync(ptep, 1, cfg); in arm_v7s_install_table()
431 int lvl, arm_v7s_iopte *ptep) in __arm_v7s_map() argument
438 ptep += ARM_V7S_LVL_IDX(iova, lvl); in __arm_v7s_map()
443 lvl, num_entries, ptep); in __arm_v7s_map()
450 pte = READ_ONCE(*ptep); in __arm_v7s_map()
456 pte = arm_v7s_install_table(cptep, ptep, 0, cfg); in __arm_v7s_map()
461 __arm_v7s_pte_sync(ptep, 1, cfg); in __arm_v7s_map()
524 arm_v7s_iopte *ptep) in arm_v7s_split_cont() argument
532 pte = *ptep; in arm_v7s_split_cont()
536 ptep -= idx & (ARM_V7S_CONT_PAGES - 1); in arm_v7s_split_cont()
539 ptep[i] = pte + i * size; in arm_v7s_split_cont()
541 __arm_v7s_pte_sync(ptep, ARM_V7S_CONT_PAGES, &iop->cfg); in arm_v7s_split_cont()
552 arm_v7s_iopte *ptep) in arm_v7s_split_blk_unmap() argument
578 pte = arm_v7s_install_table(tablep, ptep, blk_pte, cfg); in arm_v7s_split_blk_unmap()
595 arm_v7s_iopte *ptep) in __arm_v7s_unmap() argument
606 ptep += idx; in __arm_v7s_unmap()
608 pte[i] = READ_ONCE(ptep[i]); in __arm_v7s_unmap()
627 pte[0] = arm_v7s_split_cont(data, iova, idx, lvl, ptep); in __arm_v7s_unmap()
635 __arm_v7s_set_pte(ptep, 0, num_entries, &iop->cfg); in __arm_v7s_unmap()
643 ptep = iopte_deref(pte[i], lvl); in __arm_v7s_unmap()
644 __arm_v7s_free_table(ptep, lvl + 1, data); in __arm_v7s_unmap()
657 return arm_v7s_split_blk_unmap(data, iova, size, pte[0], ptep); in __arm_v7s_unmap()
661 ptep = iopte_deref(pte[0], lvl); in __arm_v7s_unmap()
662 return __arm_v7s_unmap(data, iova, size, lvl + 1, ptep); in __arm_v7s_unmap()
680 arm_v7s_iopte *ptep = data->pgd, pte; in arm_v7s_iova_to_phys() local
685 ptep += ARM_V7S_LVL_IDX(iova, ++lvl); in arm_v7s_iova_to_phys()
686 pte = READ_ONCE(*ptep); in arm_v7s_iova_to_phys()
687 ptep = iopte_deref(pte, lvl); in arm_v7s_iova_to_phys()