Home
last modified time | relevance | path

Searched refs:pgsize_bitmap (Results 1 – 25 of 47) sorted by relevance

12

/linux/drivers/iommu/generic_pt/
H A Dkunit_generic_pt.h141 KUNIT_ASSERT_NE(test, priv->info.pgsize_bitmap, 0); in test_init()
429 pt_vaddr_t pgsize_bitmap = pt_possible_sizes(pts); in test_lvl_possible_sizes() local
433 KUNIT_ASSERT_EQ(test, pgsize_bitmap, 0); in test_lvl_possible_sizes()
438 KUNIT_ASSERT_EQ(test, log2_mod(pgsize_bitmap, isz_lg2), 0); in test_lvl_possible_sizes()
440 test, fvalog2_div(pgsize_bitmap, num_items_lg2 + isz_lg2), 0); in test_lvl_possible_sizes()
446 if ((u64)pgsize_bitmap != 0xff0000000000ULL || in test_lvl_possible_sizes()
448 KUNIT_ASSERT_TRUE(test, pgsize_bitmap & log2_to_int(isz_lg2)); in test_lvl_possible_sizes()
450 KUNIT_ASSERT_NE(test, pgsize_bitmap, 0); in test_lvl_possible_sizes()
456 pgsize_bitmap & log2_to_int(num_items_lg2 + isz_lg2)); in test_lvl_possible_sizes()
468 pt_vaddr_t pgsize_bitmap = pt_possible_sizes(pts); in sweep_all_pgsizes() local
[all …]
H A Dkunit_iommu.h161 priv->info.pgsize_bitmap = (size_t)priv->info.pgsize_bitmap; in pt_kunit_priv_init()
163 priv->smallest_pgsz_lg2 = vaffs(priv->info.pgsize_bitmap); in pt_kunit_priv_init()
166 vafls((dma_addr_t)priv->info.pgsize_bitmap) - 1; in pt_kunit_priv_init()
179 log2_mod(priv->info.pgsize_bitmap, va_lg2sz - 1); in pt_kunit_priv_init()
H A Dkunit_iommu_pt.h141 pt_vaddr_t pgsize_bitmap = priv->safe_pgsize_bitmap; in test_map_simple() local
151 if (!(pgsize_bitmap & len)) in test_map_simple()
166 if (pgsize_bitmap & (1ULL << pgsz_lg2)) in test_map_simple()
178 if (!(pgsize_bitmap & len)) in test_map_simple()
196 priv->info.pgsize_bitmap % (IS_32BIT ? SZ_2G : SZ_16G); in test_map_table_to_oa()
203 KUNIT_ASSERT_TRUE(test, priv->info.pgsize_bitmap & max_pgsize); in test_map_table_to_oa()
210 if (!(priv->info.pgsize_bitmap & len)) in test_map_table_to_oa()
244 pt_vaddr_t pgsize_bitmap = priv->safe_pgsize_bitmap; in test_unmap_split() local
252 if (!(pgsize_bitmap & base_len)) in test_unmap_split()
262 if (!(pgsize_bitmap & next_len)) in test_unmap_split()
H A Diommu_pt.h133 iommu_table->domain.pgsize_bitmap, in compute_best_pgsize()
849 pt_vaddr_t pgsize_bitmap = iommu_table->domain.pgsize_bitmap; in DOMAIN_NS() local
886 PT_WARN_ON(!(pgsize_bitmap & PAGE_SIZE)); in DOMAIN_NS()
894 pgsize_bitmap, range.va, range.last_va, paddr); in DOMAIN_NS()
1073 pt_vaddr_t pgsize_bitmap = 0; in NS() local
1080 pgsize_bitmap |= pt_possible_sizes(&pts); in NS()
1084 pgsize_bitmap |= pt_possible_sizes(&pts); in NS()
1088 info->pgsize_bitmap = oalog2_mod(pgsize_bitmap, common->max_oasz_lg2); in NS()
1174 domain->pgsize_bitmap = info.pgsize_bitmap; in pt_iommu_init_domain()
1197 domain->pgsize_bitmap &= ULONG_MAX; in pt_iommu_init_domain()
/linux/drivers/iommu/iommufd/
H A Dvfio_compat.c354 unsigned long pgsize_bitmap = ULONG_MAX; in iommufd_get_pagesizes() local
360 pgsize_bitmap &= domain->pgsize_bitmap; in iommufd_get_pagesizes()
363 if (pgsize_bitmap & ~PAGE_MASK) { in iommufd_get_pagesizes()
364 pgsize_bitmap &= PAGE_MASK; in iommufd_get_pagesizes()
365 pgsize_bitmap |= PAGE_SIZE; in iommufd_get_pagesizes()
367 pgsize_bitmap = max(pgsize_bitmap, ioas->iopt.iova_alignment); in iommufd_get_pagesizes()
369 return pgsize_bitmap; in iommufd_get_pagesizes()
/linux/drivers/iommu/
H A Dio-pgtable-arm-selftests.c30 WARN_ON(!(size & cfg_cookie->pgsize_bitmap)); in dummy_tlb_flush()
88 for_each_set_bit(j, &cfg->pgsize_bitmap, BITS_PER_LONG) { in arm_lpae_run_tests()
111 for_each_set_bit(j, &cfg->pgsize_bitmap, BITS_PER_LONG) { in arm_lpae_run_tests()
136 size = 1UL << __fls(cfg->pgsize_bitmap); in arm_lpae_run_tests()
185 cfg.pgsize_bitmap = pgsize[i]; in arm_lpae_do_selftests()
H A Dio-pgtable-dart.c119 size_t sz = data->iop.cfg.pgsize_bitmap; in dart_init_pte()
238 if (WARN_ON(pgsize != cfg->pgsize_bitmap)) in dart_map_pages()
302 if (WARN_ON(pgsize != cfg->pgsize_bitmap || !pgcount)) in dart_unmap_pages()
353 iova &= (data->iop.cfg.pgsize_bitmap - 1); in dart_iova_to_phys()
371 if (cfg->pgsize_bitmap == SZ_4K) in dart_alloc_pgtable()
376 pg_shift = __ffs(cfg->pgsize_bitmap); in dart_alloc_pgtable()
423 if (!(cfg->pgsize_bitmap == SZ_4K || cfg->pgsize_bitmap == SZ_16K)) in apple_dart_alloc_pgtable()
H A Dio-pgtable-arm.c560 if (WARN_ON(!pgsize || (pgsize & cfg->pgsize_bitmap) != pgsize)) in arm_lpae_map_pages()
693 if (WARN_ON(!pgsize || (pgsize & cfg->pgsize_bitmap) != pgsize || !pgcount)) in arm_lpae_unmap_pages()
885 if (cfg->pgsize_bitmap & PAGE_SIZE) in arm_lpae_restrict_pgsizes()
887 else if (cfg->pgsize_bitmap & ~PAGE_MASK) in arm_lpae_restrict_pgsizes()
888 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes()
889 else if (cfg->pgsize_bitmap & PAGE_MASK) in arm_lpae_restrict_pgsizes()
890 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes()
911 cfg->pgsize_bitmap &= page_sizes; in arm_lpae_restrict_pgsizes()
924 if (!(cfg->pgsize_bitmap & (SZ_4K | SZ_16K | SZ_64K))) in arm_lpae_alloc_pgtable()
937 pg_shift = __ffs(cfg->pgsize_bitmap); in arm_lpae_alloc_pgtable()
[all …]
H A Dvirtio-iommu.c48 u64 pgsize_bitmap; member
406 unsigned long granule = 1UL << __ffs(vdomain->domain.pgsize_bitmap); in viommu_domain_map_identity()
665 viommu_page_size = 1UL << __ffs(viommu->pgsize_bitmap); in viommu_domain_alloc_paging()
689 vdomain->domain.pgsize_bitmap = viommu->pgsize_bitmap; in viommu_domain_alloc_paging()
1179 &viommu->pgsize_bitmap); in viommu_probe()
1181 if (!viommu->pgsize_bitmap) { in viommu_probe()
1243 dev_info(dev, "page mask: %#llx\n", viommu->pgsize_bitmap); in viommu_probe()
H A Dio-pgtable-arm-v7s.c726 cfg->pgsize_bitmap &= SZ_4K | SZ_64K | SZ_1M | SZ_16M; in arm_v7s_alloc_pgtable()
789 WARN_ON(!(size & cfg_cookie->pgsize_bitmap)); in dummy_tlb_flush()
820 .pgsize_bitmap = SZ_4K | SZ_64K | SZ_1M | SZ_16M, in arm_v7s_do_selftests()
853 for_each_set_bit(i, &cfg.pgsize_bitmap, BITS_PER_LONG) { in arm_v7s_do_selftests()
875 for_each_set_bit(i, &cfg.pgsize_bitmap, BITS_PER_LONG) { in arm_v7s_do_selftests()
H A Dmsm_iommu.c315 priv->domain.pgsize_bitmap = MSM_IOMMU_PGSIZES; in msm_iommu_domain_alloc_paging()
344 .pgsize_bitmap = priv->domain.pgsize_bitmap, in msm_iommu_domain_config()
H A Dipmmu-vmsa.c433 domain->cfg.pgsize_bitmap = domain->io_domain.pgsize_bitmap; in ipmmu_domain_init_context()
574 domain->io_domain.pgsize_bitmap = SZ_1G | SZ_2M | SZ_4K; in ipmmu_domain_alloc_paging()
H A Diommu.c1187 pg_size = domain->pgsize_bitmap ? 1UL << __ffs(domain->pgsize_bitmap) : 0; in iommu_create_device_direct_mappings()
2525 pgsizes = domain->pgsize_bitmap & GENMASK(__fls(size), 0); in iommu_pgsize()
2541 pgsizes = domain->pgsize_bitmap & ~GENMASK(pgsize_idx, 0); in iommu_pgsize()
2586 if (WARN_ON(!ops->map_pages || domain->pgsize_bitmap == 0UL)) in iommu_map_nosync()
2595 min_pagesz = 1 << __ffs(domain->pgsize_bitmap); in iommu_map_nosync()
2681 if (WARN_ON(!ops->unmap_pages || domain->pgsize_bitmap == 0UL)) in __iommu_unmap()
2685 min_pagesz = 1 << __ffs(domain->pgsize_bitmap); in __iommu_unmap()
/linux/drivers/gpu/drm/nouveau/nvkm/engine/device/
H A Dtegra.c105 unsigned long pgsize_bitmap; in nvkm_device_tegra_probe_iommu() local
132 pgsize_bitmap = tdev->iommu.domain->pgsize_bitmap; in nvkm_device_tegra_probe_iommu()
133 if (pgsize_bitmap & PAGE_SIZE) { in nvkm_device_tegra_probe_iommu()
136 tdev->iommu.pgshift = fls(pgsize_bitmap & ~PAGE_MASK); in nvkm_device_tegra_probe_iommu()
/linux/drivers/gpu/drm/msm/
H A Dmsm_iommu.c33 unsigned long pgsize_bitmap; /* Bitmap of page sizes in use */ member
56 pgsizes = pagetable->pgsize_bitmap & GENMASK(__fls(size), 0); in calc_pgsize()
72 pgsizes = pagetable->pgsize_bitmap & ~GENMASK(pgsize_idx, 0); in calc_pgsize()
497 pg_shift = __ffs(cfg->pgsize_bitmap); in get_tblsz()
563 WARN_ON(!(ttbr0_cfg.pgsize_bitmap & PAGE_SIZE)); in msm_iommu_pagetable_create()
564 ttbr0_cfg.pgsize_bitmap = PAGE_SIZE; in msm_iommu_pagetable_create()
615 pagetable->pgsize_bitmap = ttbr0_cfg.pgsize_bitmap; in msm_iommu_pagetable_create()
/linux/drivers/gpu/drm/arm/
H A Dmalidp_planes.c309 return mmu_dom->pgsize_bitmap; in malidp_get_pgsize_bitmap()
424 (struct malidp_plane_state *ms, u32 *pgsize_bitmap) in malidp_mmu_prefetch_select_mode() argument
429 pgsizes = *pgsize_bitmap & MALIDP_MMU_PREFETCH_FULL_PGSIZES; in malidp_mmu_prefetch_select_mode()
435 *pgsize_bitmap = largest_pgsize; in malidp_mmu_prefetch_select_mode()
443 pgsizes = *pgsize_bitmap & MALIDP_MMU_PREFETCH_PARTIAL_PGSIZES; in malidp_mmu_prefetch_select_mode()
449 *pgsize_bitmap = 1 << __ffs(pgsizes); in malidp_mmu_prefetch_select_mode()
452 *pgsize_bitmap = 0; in malidp_mmu_prefetch_select_mode()
/linux/drivers/iommu/arm/arm-smmu/
H A Darm-smmu-nvidia.c280 smmu->pgsize_bitmap &= GENMASK(PAGE_SHIFT, 0); in nvidia_smmu_init_context()
281 pgtbl_cfg->pgsize_bitmap = smmu->pgsize_bitmap; in nvidia_smmu_init_context()
H A Darm-smmu.c808 .pgsize_bitmap = smmu->pgsize_bitmap, in arm_smmu_init_domain_context()
832 domain->pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; in arm_smmu_init_domain_context()
936 smmu_domain->domain.pgsize_bitmap = smmu->pgsize_bitmap; in arm_smmu_domain_alloc_paging()
1918 smmu->pgsize_bitmap |= SZ_4K | SZ_64K | SZ_1M | SZ_16M; in arm_smmu_device_cfg_probe()
1921 smmu->pgsize_bitmap |= SZ_4K | SZ_2M | SZ_1G; in arm_smmu_device_cfg_probe()
1923 smmu->pgsize_bitmap |= SZ_16K | SZ_32M; in arm_smmu_device_cfg_probe()
1925 smmu->pgsize_bitmap |= SZ_64K | SZ_512M; in arm_smmu_device_cfg_probe()
1928 smmu->pgsize_bitmap); in arm_smmu_device_cfg_probe()
H A Dqcom_iommu.c232 .pgsize_bitmap = domain->pgsize_bitmap, in qcom_iommu_init_domain()
338 qcom_domain->domain.pgsize_bitmap = SZ_4K; in qcom_iommu_domain_alloc_paging()
/linux/drivers/vfio/
H A Dvfio_iommu_type1.c74 uint64_t pgsize_bitmap; member
283 unsigned long pgshift = __ffs(iommu->pgsize_bitmap); in vfio_iommu_populate_bitmap_full()
985 unsigned long pgshift = __ffs(iommu->pgsize_bitmap); in vfio_iommu_type1_pin_pages()
1252 iommu->pgsize_bitmap = ULONG_MAX; in vfio_update_pgsize_bitmap()
1255 iommu->pgsize_bitmap &= domain->domain->pgsize_bitmap; in vfio_update_pgsize_bitmap()
1265 if (iommu->pgsize_bitmap & ~PAGE_MASK) { in vfio_update_pgsize_bitmap()
1266 iommu->pgsize_bitmap &= PAGE_MASK; in vfio_update_pgsize_bitmap()
1267 iommu->pgsize_bitmap |= PAGE_SIZE; in vfio_update_pgsize_bitmap()
1420 pgshift = __ffs(iommu->pgsize_bitmap); in vfio_dma_do_unmap()
1716 pgsize = (size_t)1 << __ffs(iommu->pgsize_bitmap); in vfio_dma_do_map()
[all …]
/linux/drivers/iommu/arm/arm-smmu-v3/
H A Darm-smmu-v3-sva.c229 if (!(smmu->pgsize_bitmap & PAGE_SIZE)) in arm_smmu_sva_supported()
348 smmu_domain->domain.pgsize_bitmap = PAGE_SIZE; in arm_smmu_sva_domain_alloc()
/linux/drivers/media/pci/intel/ipu6/
H A Dipu6-mmu.c561 mmu_info->pgsize_bitmap = SZ_4K; in ipu6_mmu_alloc()
660 min_pagesz = 1 << __ffs(mmu_info->pgsize_bitmap); in ipu6_mmu_unmap()
681 if (mmu_info->pgsize_bitmap == 0UL) in ipu6_mmu_map()
685 min_pagesz = 1 << __ffs(mmu_info->pgsize_bitmap); in ipu6_mmu_map()
/linux/drivers/staging/media/ipu7/
H A Dipu7-mmu.c601 mmu_info->pgsize_bitmap = SZ_4K; in ipu7_mmu_alloc()
704 min_pagesz = 1U << __ffs(mmu_info->pgsize_bitmap); in ipu7_mmu_unmap()
726 if (mmu_info->pgsize_bitmap == 0UL) in ipu7_mmu_map()
730 min_pagesz = 1U << __ffs(mmu_info->pgsize_bitmap); in ipu7_mmu_map()
/linux/include/linux/generic_pt/
H A Diommu.h79 u64 pgsize_bitmap; member
/linux/include/linux/
H A Dio-pgtable.h107 unsigned long pgsize_bitmap; member

12