Lines Matching refs:iova
119 unsigned long iova, phys_addr_t paddr, in dart_init_pte() argument
168 static int dart_get_table(struct dart_io_pgtable *data, unsigned long iova) in dart_get_table() argument
170 return (iova >> (3 * data->bits_per_level + ilog2(sizeof(dart_iopte)))) & in dart_get_table()
174 static int dart_get_l1_index(struct dart_io_pgtable *data, unsigned long iova) in dart_get_l1_index() argument
177 return (iova >> (2 * data->bits_per_level + ilog2(sizeof(dart_iopte)))) & in dart_get_l1_index()
181 static int dart_get_l2_index(struct dart_io_pgtable *data, unsigned long iova) in dart_get_l2_index() argument
184 return (iova >> (data->bits_per_level + ilog2(sizeof(dart_iopte)))) & in dart_get_l2_index()
188 static dart_iopte *dart_get_l2(struct dart_io_pgtable *data, unsigned long iova) in dart_get_l2() argument
191 int tbl = dart_get_table(data, iova); in dart_get_l2()
197 ptep += dart_get_l1_index(data, iova); in dart_get_l2()
231 static int dart_map_pages(struct io_pgtable_ops *ops, unsigned long iova, in dart_map_pages() argument
251 tbl = dart_get_table(data, iova); in dart_map_pages()
254 ptep += dart_get_l1_index(data, iova); in dart_map_pages()
275 map_idx_start = dart_get_l2_index(data, iova); in dart_map_pages()
279 ret = dart_init_pte(data, iova, paddr, prot, num_entries, ptep); in dart_map_pages()
292 static size_t dart_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova, in dart_unmap_pages() argument
304 ptep = dart_get_l2(data, iova); in dart_unmap_pages()
310 unmap_idx_start = dart_get_l2_index(data, iova); in dart_unmap_pages()
326 iova + i * pgsize, pgsize); in dart_unmap_pages()
336 unsigned long iova) in dart_iova_to_phys() argument
341 ptep = dart_get_l2(data, iova); in dart_iova_to_phys()
347 ptep += dart_get_l2_index(data, iova); in dart_iova_to_phys()
352 iova &= (data->iop.cfg.pgsize_bitmap - 1); in dart_iova_to_phys()
353 return iopte_to_paddr(pte, data) | iova; in dart_iova_to_phys()