Lines Matching refs:ptep

298 static void __arm_v7s_pte_sync(arm_v7s_iopte *ptep, int num_entries,  in __arm_v7s_pte_sync()  argument
304 dma_sync_single_for_device(cfg->iommu_dev, __arm_v7s_dma_addr(ptep), in __arm_v7s_pte_sync()
305 num_entries * sizeof(*ptep), DMA_TO_DEVICE); in __arm_v7s_pte_sync()
307 static void __arm_v7s_set_pte(arm_v7s_iopte *ptep, arm_v7s_iopte pte, in __arm_v7s_set_pte() argument
313 ptep[i] = pte; in __arm_v7s_set_pte()
315 __arm_v7s_pte_sync(ptep, num_entries, cfg); in __arm_v7s_set_pte()
416 int lvl, int num_entries, arm_v7s_iopte *ptep) in arm_v7s_init_pte() argument
423 if (ARM_V7S_PTE_IS_TABLE(ptep[i], lvl)) { in arm_v7s_init_pte()
431 tblp = ptep - ARM_V7S_LVL_IDX(iova, lvl, cfg); in arm_v7s_init_pte()
435 } else if (ptep[i]) { in arm_v7s_init_pte()
447 __arm_v7s_set_pte(ptep, pte, num_entries, cfg); in arm_v7s_init_pte()
452 arm_v7s_iopte *ptep, in arm_v7s_install_table() argument
469 old = cmpxchg_relaxed(ptep, curr, new); in arm_v7s_install_table()
470 __arm_v7s_pte_sync(ptep, 1, cfg); in arm_v7s_install_table()
477 int lvl, arm_v7s_iopte *ptep, gfp_t gfp) in __arm_v7s_map() argument
484 ptep += ARM_V7S_LVL_IDX(iova, lvl, cfg); in __arm_v7s_map()
489 lvl, num_entries, ptep); in __arm_v7s_map()
496 pte = READ_ONCE(*ptep); in __arm_v7s_map()
502 pte = arm_v7s_install_table(cptep, ptep, 0, cfg); in __arm_v7s_map()
507 __arm_v7s_pte_sync(ptep, 1, cfg); in __arm_v7s_map()
582 arm_v7s_iopte *ptep) in arm_v7s_split_cont() argument
590 pte = *ptep; in arm_v7s_split_cont()
594 ptep -= idx & (ARM_V7S_CONT_PAGES - 1); in arm_v7s_split_cont()
597 ptep[i] = pte + i * size; in arm_v7s_split_cont()
599 __arm_v7s_pte_sync(ptep, ARM_V7S_CONT_PAGES, &iop->cfg); in arm_v7s_split_cont()
610 arm_v7s_iopte *ptep) in arm_v7s_split_blk_unmap() argument
636 pte = arm_v7s_install_table(tablep, ptep, blk_pte, cfg); in arm_v7s_split_blk_unmap()
654 arm_v7s_iopte *ptep) in __arm_v7s_unmap() argument
665 ptep += idx; in __arm_v7s_unmap()
667 pte[i] = READ_ONCE(ptep[i]); in __arm_v7s_unmap()
686 pte[0] = arm_v7s_split_cont(data, iova, idx, lvl, ptep); in __arm_v7s_unmap()
694 __arm_v7s_set_pte(ptep, 0, num_entries, &iop->cfg); in __arm_v7s_unmap()
701 ptep = iopte_deref(pte[i], lvl, data); in __arm_v7s_unmap()
702 __arm_v7s_free_table(ptep, lvl + 1, data); in __arm_v7s_unmap()
715 ptep); in __arm_v7s_unmap()
719 ptep = iopte_deref(pte[0], lvl, data); in __arm_v7s_unmap()
720 return __arm_v7s_unmap(data, gather, iova, size, lvl + 1, ptep); in __arm_v7s_unmap()
755 arm_v7s_iopte *ptep = data->pgd, pte; in arm_v7s_iova_to_phys() local
760 ptep += ARM_V7S_LVL_IDX(iova, ++lvl, &data->iop.cfg); in arm_v7s_iova_to_phys()
761 pte = READ_ONCE(*ptep); in arm_v7s_iova_to_phys()
762 ptep = iopte_deref(pte, lvl, data); in arm_v7s_iova_to_phys()