Lines Matching defs:iova
119 unsigned long iova, phys_addr_t paddr,
168 static int dart_get_table(struct dart_io_pgtable *data, unsigned long iova)
170 return (iova >> (3 * data->bits_per_level + ilog2(sizeof(dart_iopte)))) &
174 static int dart_get_l1_index(struct dart_io_pgtable *data, unsigned long iova)
177 return (iova >> (2 * data->bits_per_level + ilog2(sizeof(dart_iopte)))) &
181 static int dart_get_l2_index(struct dart_io_pgtable *data, unsigned long iova)
184 return (iova >> (data->bits_per_level + ilog2(sizeof(dart_iopte)))) &
188 static dart_iopte *dart_get_l2(struct dart_io_pgtable *data, unsigned long iova)
191 int tbl = dart_get_table(data, iova);
197 ptep += dart_get_l1_index(data, iova);
231 static int dart_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
252 tbl = dart_get_table(data, iova);
255 ptep += dart_get_l1_index(data, iova);
276 map_idx_start = dart_get_l2_index(data, iova);
280 ret = dart_init_pte(data, iova, paddr, prot, num_entries, ptep);
286 * a chance for anything to kick off a table walk for the new iova.
293 static size_t dart_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova,
305 ptep = dart_get_l2(data, iova);
311 unmap_idx_start = dart_get_l2_index(data, iova);
327 iova + i * pgsize, pgsize);
337 unsigned long iova)
342 ptep = dart_get_l2(data, iova);
348 ptep += dart_get_l2_index(data, iova);
353 iova &= (data->iop.cfg.pgsize_bitmap - 1);
354 return iopte_to_paddr(pte, data) | iova;