[PATCH 4/7] iommu/arm-smmu-v3: Remove io-pgtable-arm from sva.c
Mostafa Saleh
smostafa at google.com
Fri Jul 24 12:26:08 PDT 2026
On Mon, Jul 06, 2026 at 01:29:10PM -0300, Jason Gunthorpe wrote:
> This is only being used to get some STE constants. Put local
> constants along side the register definitions instead.
>
> Signed-off-by: Jason Gunthorpe <jgg at nvidia.com>
> ---
> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 13 ++++++-------
> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 7 +++++++
> 2 files changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
> index 0e670c92469b2f..f82a513ede09c9 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
> @@ -11,7 +11,6 @@
> #include <kunit/visibility.h>
>
> #include "arm-smmu-v3.h"
> -#include "../../io-pgtable-arm.h"
>
> static void __maybe_unused
> arm_smmu_update_s1_domain_cd_entry(struct arm_smmu_domain *smmu_domain)
> @@ -41,10 +40,10 @@ static u64 page_size_to_cd(void)
> static_assert(PAGE_SIZE == SZ_4K || PAGE_SIZE == SZ_16K ||
> PAGE_SIZE == SZ_64K);
> if (PAGE_SIZE == SZ_64K)
> - return ARM_LPAE_TCR_TG0_64K;
> + return ARM_SMMU_TCR_TG0_64K;
> if (PAGE_SIZE == SZ_16K)
> - return ARM_LPAE_TCR_TG0_16K;
> - return ARM_LPAE_TCR_TG0_4K;
> + return ARM_SMMU_TCR_TG0_16K;
> + return ARM_SMMU_TCR_TG0_4K;
> }
>
> VISIBLE_IF_KUNIT
> @@ -85,10 +84,10 @@ void arm_smmu_make_sva_cd(struct arm_smmu_cd *target,
> 64ULL - vabits_actual) |
> FIELD_PREP(CTXDESC_CD_0_TCR_TG0, page_size_to_cd()) |
> FIELD_PREP(CTXDESC_CD_0_TCR_IRGN0,
> - ARM_LPAE_TCR_RGN_WBWA) |
> + ARM_SMMU_TCR_RGN_WBWA) |
> FIELD_PREP(CTXDESC_CD_0_TCR_ORGN0,
> - ARM_LPAE_TCR_RGN_WBWA) |
> - FIELD_PREP(CTXDESC_CD_0_TCR_SH0, ARM_LPAE_TCR_SH_IS));
> + ARM_SMMU_TCR_RGN_WBWA) |
> + FIELD_PREP(CTXDESC_CD_0_TCR_SH0, ARM_SMMU_TCR_SH_IS));
>
> target->data[1] = cpu_to_le64(virt_to_phys(mm->pgd) &
> CTXDESC_CD_1_TTB0_MASK);
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> index 95186cf84e9abb..99ca96db0d0401 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> @@ -203,6 +203,13 @@ struct arm_vsmmu;
> #define Q_MAX_SZ_SHIFT (PAGE_SHIFT + MAX_PAGE_ORDER)
> #endif
>
> +/* Constants used for CD TCR and STE VTCR fields */
> +#define ARM_SMMU_TCR_TG0_4K 0
> +#define ARM_SMMU_TCR_TG0_64K 1
> +#define ARM_SMMU_TCR_TG0_16K 2
> +#define ARM_SMMU_TCR_RGN_WBWA 1
> +#define ARM_SMMU_TCR_SH_IS 3
Can the driver use the ones in generic_pt/armv.h instead of
re-defining them?
Thanks,
Mostafa
> +
> /*
> * Stream table.
> *
> --
> 2.43.0
>
More information about the linux-arm-kernel
mailing list