Home
last modified time | relevance | path

Searched refs:iovad (Results 1 – 11 of 11) sorted by relevance

/OK3568_Linux_fs/kernel/drivers/iommu/
H A Diova.c18 static bool iova_rcache_insert(struct iova_domain *iovad,
21 static unsigned long iova_rcache_get(struct iova_domain *iovad,
24 static void init_iova_rcaches(struct iova_domain *iovad);
25 static void free_iova_rcaches(struct iova_domain *iovad);
26 static void fq_destroy_all_entries(struct iova_domain *iovad);
30 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument
40 spin_lock_init(&iovad->iova_rbtree_lock); in init_iova_domain()
41 iovad->rbroot = RB_ROOT; in init_iova_domain()
42 iovad->cached_node = &iovad->anchor.node; in init_iova_domain()
43 iovad->cached32_node = &iovad->anchor.node; in init_iova_domain()
[all …]
H A Ddma-iommu.c43 struct iova_domain iovad; member
61 return cookie->iovad.granule; in cookie_msi_granule()
145 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie()
146 put_iova_domain(&cookie->iovad); in iommu_put_dma_cookie()
179 struct iova_domain *iovad = &cookie->iovad; in cookie_init_hw_msi_region() local
183 start -= iova_offset(iovad, start); in cookie_init_hw_msi_region()
184 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad); in cookie_init_hw_msi_region()
195 start += iovad->granule; in cookie_init_hw_msi_region()
202 struct iova_domain *iovad) in iova_reserve_pci_windows() argument
213 lo = iova_pfn(iovad, window->res->start - window->offset); in iova_reserve_pci_windows()
[all …]
/OK3568_Linux_fs/kernel/include/linux/
H A Diova.h106 static inline unsigned long iova_shift(struct iova_domain *iovad) in iova_shift() argument
108 return __ffs(iovad->granule); in iova_shift()
111 static inline unsigned long iova_mask(struct iova_domain *iovad) in iova_mask() argument
113 return iovad->granule - 1; in iova_mask()
116 static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova) in iova_offset() argument
118 return iova & iova_mask(iovad); in iova_offset()
121 static inline size_t iova_align(struct iova_domain *iovad, size_t size) in iova_align() argument
123 return ALIGN(size, iovad->granule); in iova_align()
126 static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova) in iova_dma_addr() argument
128 return (dma_addr_t)iova->pfn_lo << iova_shift(iovad); in iova_dma_addr()
[all …]
H A Dintel-iommu.h544 struct iova_domain iovad; /* iova's that belong to this domain */ member
/OK3568_Linux_fs/kernel/drivers/rknpu/
H A Drknpu_iommu.c13 struct iova_domain *iovad = &cookie->iovad; in rknpu_iommu_dma_alloc_iova() local
19 shift = iova_shift(iovad); in rknpu_iommu_dma_alloc_iova()
45 iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift, true); in rknpu_iommu_dma_alloc_iova()
47 limit = min_t(dma_addr_t, dma_limit >> shift, iovad->end_pfn); in rknpu_iommu_dma_alloc_iova()
49 iova = alloc_iova_fast(iovad, iova_len, limit, true); in rknpu_iommu_dma_alloc_iova()
58 struct iova_domain *iovad = &cookie->iovad; in rknpu_iommu_dma_free_iova() local
60 free_iova_fast(iovad, iova_pfn(iovad, iova), size >> iova_shift(iovad)); in rknpu_iommu_dma_free_iova()
H A Drknpu_gem.c421 struct iova_domain *iovad = NULL; in rknpu_gem_alloc_buf_with_cache() local
457 iovad = &cookie->iovad; in rknpu_gem_alloc_buf_with_cache()
458 rknpu_obj->iova_size = iova_align(iovad, cache_size + rknpu_obj->size); in rknpu_gem_alloc_buf_with_cache()
/OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/
H A Drga_dma_buf.c207 struct iova_domain *iovad = &cookie->iovad; in rga_iommu_dma_alloc_iova() local
210 shift = iova_shift(iovad); in rga_iommu_dma_alloc_iova()
236 iova = alloc_iova_fast(iovad, iova_len, in rga_iommu_dma_alloc_iova()
237 min_t(dma_addr_t, dma_limit >> shift, iovad->end_pfn), in rga_iommu_dma_alloc_iova()
240 iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift, true); in rga_iommu_dma_alloc_iova()
250 struct iova_domain *iovad = &cookie->iovad; in rga_iommu_dma_free_iova() local
252 free_iova_fast(iovad, iova_pfn(iovad, iova), size >> iova_shift(iovad)); in rga_iommu_dma_free_iova()
277 struct iova_domain *iovad; in rga_iommu_map_sgt() local
289 iovad = &cookie->iovad; in rga_iommu_map_sgt()
290 align_size = iova_align(iovad, size); in rga_iommu_map_sgt()
[all …]
/OK3568_Linux_fs/kernel/include/trace/hooks/
H A Diommu.h35 TP_PROTO(struct device *dev, struct iova_domain *iovad, dma_addr_t iova, size_t size),
36 TP_ARGS(dev, iovad, iova, size));
43 TP_PROTO(struct iova_domain *iovad, dma_addr_t iova, size_t size),
44 TP_ARGS(iovad, iova, size));
/OK3568_Linux_fs/kernel/drivers/rknpu/include/
H A Drknpu_iommu.h31 struct iova_domain iovad; member
/OK3568_Linux_fs/kernel/drivers/iommu/intel/
H A Diommu.c1721 static void iommu_flush_iova(struct iova_domain *iovad) in iommu_flush_iova() argument
1726 domain = container_of(iovad, struct dmar_domain, iovad); in iommu_flush_iova()
2079 put_iova_domain(&domain->iovad); in domain_exit()
3551 iova_pfn = alloc_iova_fast(&domain->iovad, nrpages, in intel_alloc_iova()
3556 iova_pfn = alloc_iova_fast(&domain->iovad, nrpages, in intel_alloc_iova()
3623 free_iova_fast(&domain->iovad, iova_pfn, dma_to_mm_pfn(size)); in __intel_map_single()
3671 !has_iova_flush_queue(&domain->iovad)) { in intel_unmap()
3675 free_iova_fast(&domain->iovad, iova_pfn, dma_to_mm_pfn(nrpages)); in intel_unmap()
3678 queue_iova(&domain->iovad, iova_pfn, nrpages, in intel_unmap()
3822 free_iova_fast(&domain->iovad, iova_pfn, dma_to_mm_pfn(size)); in intel_map_sg()
[all …]
/OK3568_Linux_fs/kernel/drivers/video/rockchip/rga3/include/
H A Drga_drv.h155 struct iova_domain iovad; member