| /Linux-v5.4/include/linux/ |
| D | io-pgtable.h | 41 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()
|
| D | iova.h | 73 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/ |
| D | qcom_iommu.c | 148 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()
|
| D | msm_iommu.c | 140 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()
|
| D | mtk_iommu.c | 177 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()
|
| D | io-pgtable-arm.c | 702 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()
|
| D | arm-smmu.c | 315 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 …]
|
| D | iova.c | 30 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()
|
| D | io-pgtable-arm-v7s.c | 856 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()
|
| D | dma-iommu.c | 55 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()
|
| D | arm-smmu-v3.c | 1986 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()
|
| D | arm-smmu.h | 309 void (*tlb_inv_range)(unsigned long iova, size_t size, size_t granule,
|
| D | ipmmu-vmsa.c | 365 size_t granule, void *cookie) in ipmmu_tlb_flush() argument
|
| /Linux-v5.4/Documentation/ia64/ |
| D | aliasing.rst | 72 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/ |
| D | Kconfig.debug | 12 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/ |
| D | panfrost_mmu.c | 334 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/ |
| D | nommu-mmap.txt | 118 granule but will only discard the excess if appropriately configured as
|
| /Linux-v5.4/arch/arm64/ |
| D | Kconfig | 726 Page size (translation granule) configuration.
|