Lines Matching refs:iova

415 			    unsigned long iova, phys_addr_t paddr, int prot,
431 tblp = ptep - ARM_V7S_LVL_IDX(iova, lvl);
432 if (WARN_ON(__arm_v7s_unmap(data, NULL, iova + i * sz,
475 static int __arm_v7s_map(struct arm_v7s_io_pgtable *data, unsigned long iova,
484 ptep += ARM_V7S_LVL_IDX(iova, lvl);
488 return arm_v7s_init_pte(data, iova, paddr, prot,
519 return __arm_v7s_map(data, iova, paddr, size, prot, lvl + 1, cptep, gfp);
522 static int arm_v7s_map(struct io_pgtable_ops *ops, unsigned long iova,
533 if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias) ||
537 ret = __arm_v7s_map(data, iova, paddr, size, prot, 1, data->pgd, gfp);
540 * a chance for anything to kick off a table walk for the new iova.
543 io_pgtable_tlb_flush_walk(iop, iova, size,
570 unsigned long iova, int idx, int lvl,
591 io_pgtable_tlb_flush_leaf(iop, iova, size, size);
597 unsigned long iova, size_t size,
611 unmap_idx = ARM_V7S_LVL_IDX(iova, 2);
633 return __arm_v7s_unmap(data, gather, iova, size, 2, tablep);
636 io_pgtable_tlb_add_page(&data->iop, gather, iova, size);
642 unsigned long iova, size_t size, int lvl,
653 idx = ARM_V7S_LVL_IDX(iova, lvl);
675 pte[0] = arm_v7s_split_cont(data, iova, idx, lvl, ptep);
688 io_pgtable_tlb_flush_walk(iop, iova, blk_size,
700 io_pgtable_tlb_add_page(iop, gather, iova, blk_size);
702 iova += blk_size;
710 return arm_v7s_split_blk_unmap(data, gather, iova, size, pte[0],
716 return __arm_v7s_unmap(data, gather, iova, size, lvl + 1, ptep);
719 static size_t arm_v7s_unmap(struct io_pgtable_ops *ops, unsigned long iova,
724 if (WARN_ON(upper_32_bits(iova)))
727 return __arm_v7s_unmap(data, gather, iova, size, 1, data->pgd);
731 unsigned long iova)
739 ptep += ARM_V7S_LVL_IDX(iova, ++lvl);
750 return iopte_to_paddr(pte, lvl, &data->iop.cfg) | (iova & ~mask);
856 static void __init dummy_tlb_flush(unsigned long iova, size_t size,
864 unsigned long iova, size_t granule,
867 dummy_tlb_flush(iova, granule, granule, cookie);
894 unsigned int iova, size, iova_start;
923 iova = 0;
926 if (ops->map(ops, iova, iova, size, IOMMU_READ |
933 if (!ops->map(ops, iova, iova + size, size,
937 if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
940 iova += SZ_16M;
963 iova = 0;
967 if (ops->unmap(ops, iova, size, NULL) != size)
970 if (ops->iova_to_phys(ops, iova + 42))
974 if (ops->map(ops, iova, iova, size, IOMMU_WRITE, GFP_KERNEL))
977 if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
980 iova += SZ_16M;