• Home
  • Raw
  • Download

Lines Matching refs:iommu

146 	struct ldc_iommu		iommu;  member
1022 static void ldc_demap(struct ldc_iommu *iommu, unsigned long id, u64 cookie, in ldc_demap() argument
1029 base = iommu->page_table + entry; in ldc_demap()
1044 struct ldc_iommu *ldc_iommu = &lp->iommu; in ldc_iommu_init()
1045 struct iommu_map_table *iommu = &ldc_iommu->iommu_map_table; in ldc_iommu_init() local
1056 iommu->map = kzalloc(sz, GFP_KERNEL); in ldc_iommu_init()
1057 if (!iommu->map) { in ldc_iommu_init()
1061 iommu_tbl_pool_init(iommu, num_tsb_entries, PAGE_SHIFT, in ldc_iommu_init()
1094 kfree(iommu->map); in ldc_iommu_init()
1095 iommu->map = NULL; in ldc_iommu_init()
1102 struct ldc_iommu *ldc_iommu = &lp->iommu; in ldc_iommu_release()
1103 struct iommu_map_table *iommu = &ldc_iommu->iommu_map_table; in ldc_iommu_release() local
1108 num_tsb_entries = iommu->poolsize * iommu->nr_pools; in ldc_iommu_release()
1115 kfree(iommu->map); in ldc_iommu_release()
1116 iommu->map = NULL; in ldc_iommu_release()
2017 static struct ldc_mtable_entry *alloc_npages(struct ldc_iommu *iommu, in alloc_npages() argument
2022 entry = iommu_tbl_range_alloc(NULL, &iommu->iommu_map_table, in alloc_npages()
2027 return iommu->page_table + entry; in alloc_npages()
2155 struct ldc_iommu *iommu; in ldc_map_sg() local
2170 iommu = &lp->iommu; in ldc_map_sg()
2172 base = alloc_npages(iommu, npages); in ldc_map_sg()
2177 state.page_table = iommu->page_table; in ldc_map_sg()
2181 state.pte_idx = (base - iommu->page_table); in ldc_map_sg()
2201 struct ldc_iommu *iommu; in ldc_map_single() local
2212 iommu = &lp->iommu; in ldc_map_single()
2214 base = alloc_npages(iommu, npages); in ldc_map_single()
2219 state.page_table = iommu->page_table; in ldc_map_single()
2223 state.pte_idx = (base - iommu->page_table); in ldc_map_single()
2233 static void free_npages(unsigned long id, struct ldc_iommu *iommu, in free_npages() argument
2240 entry = ldc_cookie_to_index(cookie, iommu); in free_npages()
2241 ldc_demap(iommu, id, cookie, entry, npages); in free_npages()
2242 iommu_tbl_range_free(&iommu->iommu_map_table, cookie, npages, entry); in free_npages()
2248 struct ldc_iommu *iommu = &lp->iommu; in ldc_unmap() local
2252 spin_lock_irqsave(&iommu->lock, flags); in ldc_unmap()
2257 free_npages(lp->id, iommu, addr, size); in ldc_unmap()
2259 spin_unlock_irqrestore(&iommu->lock, flags); in ldc_unmap()