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
2102 iommu = &lp->iommu; in ldc_map_sg()
2104 base = alloc_npages(iommu, npages); in ldc_map_sg()
2109 state.page_table = iommu->page_table; in ldc_map_sg()
2113 state.pte_idx = (base - iommu->page_table); in ldc_map_sg()
2133 struct ldc_iommu *iommu; in ldc_map_single() local
2144 iommu = &lp->iommu; in ldc_map_single()
2146 base = alloc_npages(iommu, npages); in ldc_map_single()
2151 state.page_table = iommu->page_table; in ldc_map_single()
2155 state.pte_idx = (base - iommu->page_table); in ldc_map_single()
2165 static void free_npages(unsigned long id, struct ldc_iommu *iommu, in free_npages() argument
2172 entry = ldc_cookie_to_index(cookie, iommu); in free_npages()
2173 ldc_demap(iommu, id, cookie, entry, npages); in free_npages()
2174 iommu_tbl_range_free(&iommu->iommu_map_table, cookie, npages, entry); in free_npages()
2180 struct ldc_iommu *iommu = &lp->iommu; in ldc_unmap() local
2184 spin_lock_irqsave(&iommu->lock, flags); in ldc_unmap()
2189 free_npages(lp->id, iommu, addr, size); in ldc_unmap()
2191 spin_unlock_irqrestore(&iommu->lock, flags); in ldc_unmap()