Lines Matching refs:iommu

146 	struct ldc_iommu		iommu;  member
1016 static void ldc_demap(struct ldc_iommu *iommu, unsigned long id, u64 cookie, in ldc_demap() argument
1023 base = iommu->page_table + entry; in ldc_demap()
1038 struct ldc_iommu *ldc_iommu = &lp->iommu; in ldc_iommu_init()
1039 struct iommu_map_table *iommu = &ldc_iommu->iommu_map_table; in ldc_iommu_init() local
1050 iommu->map = kzalloc(sz, GFP_KERNEL); in ldc_iommu_init()
1051 if (!iommu->map) { in ldc_iommu_init()
1055 iommu_tbl_pool_init(iommu, num_tsb_entries, PAGE_SHIFT, in ldc_iommu_init()
1088 kfree(iommu->map); in ldc_iommu_init()
1089 iommu->map = NULL; in ldc_iommu_init()
1096 struct ldc_iommu *ldc_iommu = &lp->iommu; in ldc_iommu_release()
1097 struct iommu_map_table *iommu = &ldc_iommu->iommu_map_table; in ldc_iommu_release() local
1102 num_tsb_entries = iommu->poolsize * iommu->nr_pools; in ldc_iommu_release()
1109 kfree(iommu->map); in ldc_iommu_release()
1110 iommu->map = NULL; in ldc_iommu_release()
1949 static struct ldc_mtable_entry *alloc_npages(struct ldc_iommu *iommu, in alloc_npages() argument
1954 entry = iommu_tbl_range_alloc(NULL, &iommu->iommu_map_table, in alloc_npages()
1959 return iommu->page_table + entry; in alloc_npages()
2087 struct ldc_iommu *iommu; in ldc_map_sg() local
2101 iommu = &lp->iommu; in ldc_map_sg()
2103 base = alloc_npages(iommu, npages); in ldc_map_sg()
2108 state.page_table = iommu->page_table; in ldc_map_sg()
2112 state.pte_idx = (base - iommu->page_table); in ldc_map_sg()
2131 struct ldc_iommu *iommu; in ldc_map_single() local
2142 iommu = &lp->iommu; in ldc_map_single()
2144 base = alloc_npages(iommu, npages); in ldc_map_single()
2149 state.page_table = iommu->page_table; in ldc_map_single()
2153 state.pte_idx = (base - iommu->page_table); in ldc_map_single()
2163 static void free_npages(unsigned long id, struct ldc_iommu *iommu, in free_npages() argument
2170 entry = ldc_cookie_to_index(cookie, iommu); in free_npages()
2171 ldc_demap(iommu, id, cookie, entry, npages); in free_npages()
2172 iommu_tbl_range_free(&iommu->iommu_map_table, cookie, npages, entry); in free_npages()
2178 struct ldc_iommu *iommu = &lp->iommu; in ldc_unmap() local
2182 spin_lock_irqsave(&iommu->lock, flags); in ldc_unmap()
2187 free_npages(lp->id, iommu, addr, size); in ldc_unmap()
2189 spin_unlock_irqrestore(&iommu->lock, flags); in ldc_unmap()