]> www.infradead.org Git - users/hch/block.git/commitdiff
iommu: arm-smmu: Fix Tegra workaround for PAGE_SIZE mappings
authorAshish Mhetre <amhetre@nvidia.com>
Wed, 24 Jul 2024 17:31:32 +0000 (17:31 +0000)
committerWill Deacon <will@kernel.org>
Thu, 25 Jul 2024 12:08:44 +0000 (13:08 +0100)
PAGE_SIZE can be 16KB for Tegra which is not supported by MMU-500 on
both Tegra194 and Tegra234. Retain only valid granularities from
pgsize_bitmap which would either be 4KB or 64KB.

Signed-off-by: Ashish Mhetre <amhetre@nvidia.com>
Link: https://lore.kernel.org/r/20240724173132.219978-1-amhetre@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c

index 4b2994b6126df5e2b9bf73b42d204d1660ccaa81..2fce4f6d4e1b234167313c22e530f4ad07930b5d 100644 (file)
@@ -277,7 +277,7 @@ static int nvidia_smmu_init_context(struct arm_smmu_domain *smmu_domain,
         */
        if (of_device_is_compatible(np, "nvidia,tegra234-smmu") ||
            of_device_is_compatible(np, "nvidia,tegra194-smmu")) {
-               smmu->pgsize_bitmap = PAGE_SIZE;
+               smmu->pgsize_bitmap &= GENMASK(PAGE_SHIFT, 0);
                pgtbl_cfg->pgsize_bitmap = smmu->pgsize_bitmap;
        }