| /OK3568_Linux_fs/kernel/drivers/iommu/ |
| H A D | iova.c | 18 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 D | dma-iommu.c | 43 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 D | iova.h | 106 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 D | intel-iommu.h | 544 struct iova_domain iovad; /* iova's that belong to this domain */ member
|
| /OK3568_Linux_fs/kernel/drivers/rknpu/ |
| H A D | rknpu_iommu.c | 13 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 D | rknpu_gem.c | 421 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 D | rga_dma_buf.c | 207 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 D | iommu.h | 35 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 D | rknpu_iommu.h | 31 struct iova_domain iovad; member
|
| /OK3568_Linux_fs/kernel/drivers/iommu/intel/ |
| H A D | iommu.c | 1721 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 D | rga_drv.h | 155 struct iova_domain iovad; member
|