Re: [PATCH v6 05/25] iommu/arm-smmu-v3: Move IDR parsing to common functions

Jason Gunthorpe
2026-05-01T12:47:18Z

On Fri, May 01, 2026 at 11:19:07AM +0000, Mostafa Saleh wrote:
> Move parsing of IDRs to functions so that it can be re-used
> +unsigned long smmu_idr5_to_pgsize(u32 reg)
> +{
> + unsigned long pgsize_bitmap = 0;
> +
> + if (reg & IDR5_GRAN64K)
> + pgsize_bitmap |= SZ_64K | SZ_512M;
> + if (reg & IDR5_GRAN16K)
> + pgsize_bitmap |= SZ_16K | SZ_32M;
> + if (reg & IDR5_GRAN4K)
> + pgsize_bitmap |= SZ_4K | SZ_2M | SZ_1G;
> + return pgsize_bitmap;
> +}

I think this should include:

> + smmu->oas = smmu_idr5_to_oas(reg);
> + if (smmu->oas == 52)
> smmu->pgsize_bitmap |= 1ULL << 42; /* 4TB */
> - break;

ie it should return the supported page sizes by inspecting all the
idrs and don't leave this tricky bit to be open coded..

Jason