diff options
| -rw-r--r-- | drivers/iommu/arm-smmu.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 93b9177d4dfd..d01802e7cbfd 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c | |||
| @@ -264,6 +264,7 @@ enum arm_smmu_s2cr_privcfg { | |||
| 264 | 264 | ||
| 265 | #define TTBCR2_SEP_SHIFT 15 | 265 | #define TTBCR2_SEP_SHIFT 15 |
| 266 | #define TTBCR2_SEP_UPSTREAM (0x7 << TTBCR2_SEP_SHIFT) | 266 | #define TTBCR2_SEP_UPSTREAM (0x7 << TTBCR2_SEP_SHIFT) |
| 267 | #define TTBCR2_AS (1 << 4) | ||
| 267 | 268 | ||
| 268 | #define TTBRn_ASID_SHIFT 48 | 269 | #define TTBRn_ASID_SHIFT 48 |
| 269 | 270 | ||
| @@ -783,6 +784,8 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain, | |||
| 783 | reg = pgtbl_cfg->arm_lpae_s1_cfg.tcr; | 784 | reg = pgtbl_cfg->arm_lpae_s1_cfg.tcr; |
| 784 | reg2 = pgtbl_cfg->arm_lpae_s1_cfg.tcr >> 32; | 785 | reg2 = pgtbl_cfg->arm_lpae_s1_cfg.tcr >> 32; |
| 785 | reg2 |= TTBCR2_SEP_UPSTREAM; | 786 | reg2 |= TTBCR2_SEP_UPSTREAM; |
| 787 | if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH64) | ||
| 788 | reg2 |= TTBCR2_AS; | ||
| 786 | } | 789 | } |
| 787 | if (smmu->version > ARM_SMMU_V1) | 790 | if (smmu->version > ARM_SMMU_V1) |
| 788 | writel_relaxed(reg2, cb_base + ARM_SMMU_CB_TTBCR2); | 791 | writel_relaxed(reg2, cb_base + ARM_SMMU_CB_TTBCR2); |
