Home
last modified time | relevance | path

Searched refs:granule (Results 1 – 18 of 18) sorted by relevance

/Linux-v5.4/include/linux/
Dio-pgtable.h41 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule,
43 void (*tlb_flush_leaf)(unsigned long iova, size_t size, size_t granule,
46 unsigned long iova, size_t granule, void *cookie);
199 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument
201 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
206 size_t size, size_t granule) in io_pgtable_tlb_flush_leaf() argument
208 iop->cfg.tlb->tlb_flush_leaf(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_leaf()
214 size_t granule) in io_pgtable_tlb_add_page() argument
217 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
Diova.h73 unsigned long granule; /* pfn granularity for this domain */ member
107 return __ffs(iovad->granule); in iova_shift()
112 return iovad->granule - 1; in iova_mask()
122 return ALIGN(size, iovad->granule); in iova_align()
156 void init_iova_domain(struct iova_domain *iovad, unsigned long granule,
234 unsigned long granule, in init_iova_domain() argument
/Linux-v5.4/drivers/iommu/
Dqcom_iommu.c148 size_t granule, bool leaf, void *cookie) in qcom_iommu_tlb_inv_range_nosync() argument
163 iova += granule; in qcom_iommu_tlb_inv_range_nosync()
164 } while (s -= granule); in qcom_iommu_tlb_inv_range_nosync()
169 size_t granule, void *cookie) in qcom_iommu_tlb_flush_walk() argument
171 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, false, cookie); in qcom_iommu_tlb_flush_walk()
176 size_t granule, void *cookie) in qcom_iommu_tlb_flush_leaf() argument
178 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, true, cookie); in qcom_iommu_tlb_flush_leaf()
183 unsigned long iova, size_t granule, in qcom_iommu_tlb_add_page() argument
186 qcom_iommu_tlb_inv_range_nosync(iova, granule, granule, true, cookie); in qcom_iommu_tlb_add_page()
Dmsm_iommu.c140 size_t granule, bool leaf, void *cookie) in __flush_iotlb_range() argument
160 iova += granule; in __flush_iotlb_range()
161 } while (temp_size -= granule); in __flush_iotlb_range()
172 size_t granule, void *cookie) in __flush_iotlb_walk() argument
174 __flush_iotlb_range(iova, size, granule, false, cookie); in __flush_iotlb_walk()
178 size_t granule, void *cookie) in __flush_iotlb_leaf() argument
180 __flush_iotlb_range(iova, size, granule, true, cookie); in __flush_iotlb_leaf()
184 unsigned long iova, size_t granule, void *cookie) in __flush_iotlb_page() argument
186 __flush_iotlb_range(iova, granule, granule, true, cookie); in __flush_iotlb_page()
Dmtk_iommu.c177 size_t granule, bool leaf, in mtk_iommu_tlb_add_flush_nosync() argument
220 size_t granule, void *cookie) in mtk_iommu_tlb_flush_walk() argument
222 mtk_iommu_tlb_add_flush_nosync(iova, size, granule, false, cookie); in mtk_iommu_tlb_flush_walk()
227 size_t granule, void *cookie) in mtk_iommu_tlb_flush_leaf() argument
229 mtk_iommu_tlb_add_flush_nosync(iova, size, granule, true, cookie); in mtk_iommu_tlb_flush_leaf()
234 unsigned long iova, size_t granule, in mtk_iommu_tlb_flush_page_nosync() argument
237 mtk_iommu_tlb_add_flush_nosync(iova, granule, granule, true, cookie); in mtk_iommu_tlb_flush_page_nosync()
Dio-pgtable-arm.c702 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() local
713 granule = PAGE_SIZE; in arm_lpae_restrict_pgsizes()
715 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes()
717 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes()
719 granule = 0; in arm_lpae_restrict_pgsizes()
721 switch (granule) { in arm_lpae_restrict_pgsizes()
1107 static void dummy_tlb_flush(unsigned long iova, size_t size, size_t granule, in dummy_tlb_flush() argument
1115 unsigned long iova, size_t granule, void *cookie) in dummy_tlb_add_page() argument
1117 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
Darm-smmu.c315 size_t granule, bool leaf, void *cookie) in arm_smmu_tlb_inv_range_s1() argument
332 iova += granule; in arm_smmu_tlb_inv_range_s1()
333 } while (size -= granule); in arm_smmu_tlb_inv_range_s1()
339 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1()
340 } while (size -= granule); in arm_smmu_tlb_inv_range_s1()
345 size_t granule, bool leaf, void *cookie) in arm_smmu_tlb_inv_range_s2() argument
361 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2()
362 } while (size -= granule); in arm_smmu_tlb_inv_range_s2()
372 size_t granule, bool leaf, void *cookie) in arm_smmu_tlb_inv_vmid_nosync() argument
384 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk() argument
[all …]
Diova.c30 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument
38 BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule)); in init_iova_domain()
44 iovad->granule = granule; in init_iova_domain()
Dio-pgtable-arm-v7s.c856 static void dummy_tlb_flush(unsigned long iova, size_t size, size_t granule, in dummy_tlb_flush() argument
864 unsigned long iova, size_t granule, void *cookie) in dummy_tlb_add_page() argument
866 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
Ddma-iommu.c55 return cookie->iovad.granule; in cookie_msi_granule()
139 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie()
189 start += iovad->granule; in cookie_init_hw_msi_region()
333 if (1UL << order != iovad->granule || in iommu_dma_init_domain()
Darm-smmu-v3.c1986 size_t granule, bool leaf, in arm_smmu_tlb_inv_range() argument
2018 iova += granule; in arm_smmu_tlb_inv_range()
2032 unsigned long iova, size_t granule, in arm_smmu_tlb_inv_page_nosync() argument
2038 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in arm_smmu_tlb_inv_page_nosync()
2042 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk() argument
2044 arm_smmu_tlb_inv_range(iova, size, granule, false, cookie); in arm_smmu_tlb_inv_walk()
2048 size_t granule, void *cookie) in arm_smmu_tlb_inv_leaf() argument
2050 arm_smmu_tlb_inv_range(iova, size, granule, true, cookie); in arm_smmu_tlb_inv_leaf()
Darm-smmu.h309 void (*tlb_inv_range)(unsigned long iova, size_t size, size_t granule,
Dipmmu-vmsa.c365 size_t granule, void *cookie) in ipmmu_tlb_flush() argument
/Linux-v5.4/Documentation/ia64/
Daliasing.rst72 identity mapping only when the entire granule supports cacheable
75 Therefore, kern_memmap contains only full granule-sized regions that
162 If the EFI memory map reports that the entire granule supports
166 If the granule contains non-WB memory, but we can cover the
200 which uses a granule-sized UC mapping. This granule will cover some
236 at 0xA0000 prevents use of a WB granule. The UC mapping causes
/Linux-v5.4/arch/ia64/
DKconfig.debug12 Select "16MB" for a small granule size.
13 Select "64MB" for a large granule size. This is the current default.
/Linux-v5.4/drivers/gpu/drm/panfrost/
Dpanfrost_mmu.c334 static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_walk() argument
340 static void mmu_tlb_flush_leaf(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_leaf() argument
/Linux-v5.4/Documentation/
Dnommu-mmap.txt118 granule but will only discard the excess if appropriately configured as
/Linux-v5.4/arch/arm64/
DKconfig726 Page size (translation granule) configuration.