| /linux/drivers/iommu/generic_pt/ |
| H A D | kunit_generic_pt.h | 141 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 D | kunit_iommu.h | 161 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 D | kunit_iommu_pt.h | 141 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()
|
| /linux/drivers/iommu/iommufd/ |
| H A D | vfio_compat.c | 354 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 D | io-pgtable-arm-selftests.c | 30 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 D | io-pgtable-arm.c | 560 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 D | virtio-iommu.c | 48 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 D | msm_iommu.c | 315 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 D | ipmmu-vmsa.c | 433 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 D | iommu.c | 1180 pg_size = domain->pgsize_bitmap ? 1UL << __ffs(domain->pgsize_bitmap) : 0; in iommu_create_device_direct_mappings() 2457 pgsizes = domain->pgsize_bitmap & GENMASK(__fls(size), 0); in iommu_pgsize() 2473 pgsizes = domain->pgsize_bitmap & ~GENMASK(pgsize_idx, 0); in iommu_pgsize() 2518 if (WARN_ON(!ops->map_pages || domain->pgsize_bitmap == 0UL)) in iommu_map_nosync() 2527 min_pagesz = 1 << __ffs(domain->pgsize_bitmap); in iommu_map_nosync() 2611 if (WARN_ON(!ops->unmap_pages || domain->pgsize_bitmap == 0UL)) in __iommu_unmap() 2615 min_pagesz = 1 << __ffs(domain->pgsize_bitmap); in __iommu_unmap()
|
| H A D | mtk_iommu.c | 665 dom->domain.pgsize_bitmap = share_dom->domain.pgsize_bitmap; in mtk_iommu_domain_finalise() 673 .pgsize_bitmap = dom->domain.pgsize_bitmap, in mtk_iommu_domain_finalise() 711 dom->domain.pgsize_bitmap = SZ_4K | SZ_64K | SZ_1M | SZ_16M; in mtk_iommu_domain_alloc_paging()
|
| H A D | apple-dart.c | 612 .pgsize_bitmap = dart->pgsize, in apple_dart_finalize_domain() 626 dart_domain->domain.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; in apple_dart_finalize_domain()
|
| H A D | sprd-iommu.c | 146 dom->domain.pgsize_bitmap = SPRD_IOMMU_PAGE_SIZE; in sprd_iommu_domain_alloc_paging()
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_iommu.c | 33 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/iommu/arm/arm-smmu/ |
| H A D | arm-smmu-nvidia.c | 280 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 D | arm-smmu.c | 808 .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 D | qcom_iommu.c | 232 .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 D | vfio_iommu_type1.c | 74 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 D | arm-smmu-v3-sva.c | 229 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()
|
| H A D | arm-smmu-v3.c | 2284 tg = __ffs(smmu_domain->domain.pgsize_bitmap); in __arm_smmu_tlb_inv_range() 2542 .pgsize_bitmap = smmu->pgsize_bitmap, in arm_smmu_domain_finalise() 2580 smmu_domain->domain.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; in arm_smmu_domain_finalise() 2663 stu = __ffs(smmu->pgsize_bitmap); in arm_smmu_enable_ats() 3573 unsigned int stu = __ffs(smmu->pgsize_bitmap); in arm_smmu_probe_device() 4473 smmu->pgsize_bitmap |= SZ_64K | SZ_512M; in arm_smmu_device_hw_probe() 4475 smmu->pgsize_bitmap |= SZ_16K | SZ_32M; in arm_smmu_device_hw_probe() 4477 smmu->pgsize_bitmap |= SZ_4K | SZ_2M | SZ_1G; in arm_smmu_device_hw_probe() 4502 smmu->pgsize_bitmap |= 1ULL << 42; /* 4TB */ in arm_smmu_device_hw_probe()
|
| /linux/drivers/media/pci/intel/ipu6/ |
| H A D | ipu6-mmu.c | 561 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/include/linux/generic_pt/ |
| H A D | iommu.h | 79 u64 pgsize_bitmap; member
|
| /linux/include/linux/ |
| H A D | io-pgtable.h | 107 unsigned long pgsize_bitmap; member
|
| /linux/drivers/iommu/intel/ |
| H A D | iommu.c | 2868 dmar_domain->domain.pgsize_bitmap &= ~(u64)SZ_1G; in intel_iommu_domain_alloc_first_stage() 2870 dmar_domain->domain.pgsize_bitmap = SZ_4K; in intel_iommu_domain_alloc_first_stage() 2964 dmar_domain->domain.pgsize_bitmap &= ~(u64)SZ_2M; in intel_iommu_domain_alloc_second_stage() 2966 dmar_domain->domain.pgsize_bitmap &= ~(u64)SZ_1G; in intel_iommu_domain_alloc_second_stage() 2968 dmar_domain->domain.pgsize_bitmap = SZ_4K; in intel_iommu_domain_alloc_second_stage() 3039 (dmar_domain->domain.pgsize_bitmap & SZ_1G)) in paging_domain_compatible_first_stage() 3082 if (!(sslps & BIT(0)) && (dmar_domain->domain.pgsize_bitmap & SZ_2M)) in paging_domain_compatible_second_stage() 3084 if (!(sslps & BIT(1)) && (dmar_domain->domain.pgsize_bitmap & SZ_1G)) in paging_domain_compatible_second_stage()
|
| /linux/include/uapi/linux/ |
| H A D | vfio.h | 1570 __u64 pgsize_bitmap; member
|