Home
last modified time | relevance | path

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

/kernel/linux/linux-5.10/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);
218 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument
220 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
225 size_t size, size_t granule) in io_pgtable_tlb_flush_leaf() argument
227 iop->cfg.tlb->tlb_flush_leaf(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_leaf()
233 size_t granule) in io_pgtable_tlb_add_page() argument
236 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
/kernel/linux/linux-5.10/drivers/iommu/arm/arm-smmu/
Dqcom_iommu.c160 size_t granule, bool leaf, void *cookie) in qcom_iommu_tlb_inv_range_nosync() argument
176 iova += granule; in qcom_iommu_tlb_inv_range_nosync()
177 } while (s -= granule); in qcom_iommu_tlb_inv_range_nosync()
182 size_t granule, void *cookie) in qcom_iommu_tlb_flush_walk() argument
184 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, false, cookie); in qcom_iommu_tlb_flush_walk()
189 size_t granule, void *cookie) in qcom_iommu_tlb_flush_leaf() argument
191 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, true, cookie); in qcom_iommu_tlb_flush_leaf()
196 unsigned long iova, size_t granule, in qcom_iommu_tlb_add_page() argument
199 qcom_iommu_tlb_inv_range_nosync(iova, granule, granule, true, cookie); in qcom_iommu_tlb_add_page()
Darm-smmu.c281 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s1() argument
296 iova += granule; in arm_smmu_tlb_inv_range_s1()
297 } while (size -= granule); in arm_smmu_tlb_inv_range_s1()
303 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1()
304 } while (size -= granule); in arm_smmu_tlb_inv_range_s1()
309 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s2() argument
324 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2()
325 } while (size -= granule); in arm_smmu_tlb_inv_range_s2()
329 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk_s1() argument
331 arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie, in arm_smmu_tlb_inv_walk_s1()
[all …]
/kernel/linux/linux-5.10/drivers/iommu/
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()
Dio-pgtable-arm.c680 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() local
691 granule = PAGE_SIZE; in arm_lpae_restrict_pgsizes()
693 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes()
695 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes()
697 granule = 0; in arm_lpae_restrict_pgsizes()
699 switch (granule) { in arm_lpae_restrict_pgsizes()
1076 size_t granule, void *cookie) in dummy_tlb_flush() argument
1083 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument
1086 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
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.c857 size_t granule, void *cookie) in dummy_tlb_flush() argument
864 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument
867 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
Dmtk_iommu.c198 size_t granule, void *cookie) in mtk_iommu_tlb_flush_range_sync() argument
231 unsigned long iova, size_t granule, in mtk_iommu_tlb_flush_page_nosync() argument
237 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in mtk_iommu_tlb_flush_page_nosync()
Ddma-iommu.c55 return cookie->iovad.granule; in cookie_msi_granule()
138 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie()
188 start += iovad->granule; in cookie_init_hw_msi_region()
334 if (1UL << order != iovad->granule || in iommu_dma_init_domain()
Dipmmu-vmsa.c320 size_t granule, void *cookie) in ipmmu_tlb_flush() argument
/kernel/linux/linux-5.10/arch/arm64/kvm/hyp/
Dpgtable.c69 u64 granule = kvm_granule_size(level); in kvm_block_mapping_supported() local
78 if (granule > (end - addr)) in kvm_block_mapping_supported()
81 return IS_ALIGNED(addr, granule) && IS_ALIGNED(phys, granule); in kvm_block_mapping_supported()
345 u64 granule = kvm_granule_size(level), phys = data->phys; in hyp_map_walker_try_leaf() local
351 data->phys += granule; in hyp_map_walker_try_leaf()
469 u64 granule = kvm_granule_size(level), phys = data->phys; in stage2_map_walker_try_leaf() local
491 data->phys += granule; in stage2_map_walker_try_leaf()
/kernel/linux/linux-5.10/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
/kernel/linux/linux-5.10/arch/ia64/
DKconfig.debug12 Select "16MB" for a small granule size.
13 Select "64MB" for a large granule size. This is the current default.
/kernel/linux/linux-5.10/drivers/gpu/drm/msm/
Dmsm_iommu.c130 size_t granule, void *cookie) in msm_iommu_tlb_flush_walk() argument
135 unsigned long iova, size_t granule, void *cookie) in msm_iommu_tlb_add_page() argument
/kernel/linux/linux-5.10/Documentation/arm64/
Dmemory-tagging-extension.rst19 allocation tag for each 16-byte granule in the physical address space.
154 4-bit tag per byte and correspond to a 16-byte MTE tag granule in the
157 **Note**: If ``addr`` is not aligned to a 16-byte granule, the kernel
/kernel/linux/linux-5.10/drivers/iommu/arm/arm-smmu-v3/
Darm-smmu-v3.c1653 size_t granule, bool leaf, in arm_smmu_tlb_inv_range() argument
1658 size_t inv_range = granule; in arm_smmu_tlb_inv_range()
1685 cmd.tlbi.ttl = 4 - ((ilog2(granule) - 3) / (tg - 3)); in arm_smmu_tlb_inv_range()
1730 unsigned long iova, size_t granule, in arm_smmu_tlb_inv_page_nosync() argument
1736 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in arm_smmu_tlb_inv_page_nosync()
1740 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk() argument
1742 arm_smmu_tlb_inv_range(iova, size, granule, false, cookie); in arm_smmu_tlb_inv_walk()
1746 size_t granule, void *cookie) in arm_smmu_tlb_inv_leaf() argument
1748 arm_smmu_tlb_inv_range(iova, size, granule, true, cookie); in arm_smmu_tlb_inv_leaf()
/kernel/linux/linux-5.10/drivers/gpu/drm/panfrost/
Dpanfrost_mmu.c338 static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_walk() argument
344 static void mmu_tlb_flush_leaf(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_leaf() argument
/kernel/linux/linux-5.10/Documentation/admin-guide/mm/
Dnommu-mmap.rst118 granule but will only discard the excess if appropriately configured as
/kernel/linux/linux-5.10/arch/arm64/
DKconfig862 Page size (translation granule) configuration.
/kernel/linux/patches/linux-5.10/yangfan_patch/
Ddrivers.patch16572 … -341,22 +347,62 @@ static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule,
16576 -static void mmu_tlb_flush_leaf(unsigned long iova, size_t size, size_t granule,