diff options
author | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2019-08-08 11:27:54 +0100 |
---|---|---|
committer | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2019-08-08 11:27:54 +0100 |
commit | 862a746fcb90c25792a77f68b7ff401a0384bae7 (patch) | |
tree | 588ab8517027b71ee7f45bd67f53d6b1ed812d05 | |
parent | ea2003a95af864c083be83ff44fd80e534cb94ec (diff) |
Revert "iommu: arm-smmu: Don't blindly use first SMR to calculate mask"
This reverts commit 6e79043bc13226542ffa347bf52d23a20aee4956.
-rw-r--r-- | drivers/iommu/arm-smmu.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index 854a8773dc465..1525cf3c27a0f 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -1209,35 +1209,23 @@ static void arm_smmu_test_smr_masks(struct arm_smmu_device *smmu) { void __iomem *gr0_base = ARM_SMMU_GR0(smmu); u32 smr; - int idx; if (!smmu->smrs) return; - for (idx = 0; idx < smmu->num_mapping_groups; idx++) { - smr = readl_relaxed(gr0_base + ARM_SMMU_GR0_SMR(idx)); - if (!(smr & SMR_VALID)) - break; - } - - if (idx == smmu->num_mapping_groups) { - dev_err(smmu->dev, "Unable to compute streamid_mask\n"); - return; - } - /* * SMR.ID bits may not be preserved if the corresponding MASK * bits are set, so check each one separately. We can reject * masters later if they try to claim IDs outside these masks. */ smr = smmu->streamid_mask << SMR_ID_SHIFT; - writel_relaxed(smr, gr0_base + ARM_SMMU_GR0_SMR(idx)); - smr = readl_relaxed(gr0_base + ARM_SMMU_GR0_SMR(idx)); + writel_relaxed(smr, gr0_base + ARM_SMMU_GR0_SMR(0)); + smr = readl_relaxed(gr0_base + ARM_SMMU_GR0_SMR(0)); smmu->streamid_mask = smr >> SMR_ID_SHIFT; smr = smmu->streamid_mask << SMR_MASK_SHIFT; - writel_relaxed(smr, gr0_base + ARM_SMMU_GR0_SMR(idx)); - smr = readl_relaxed(gr0_base + ARM_SMMU_GR0_SMR(idx)); + writel_relaxed(smr, gr0_base + ARM_SMMU_GR0_SMR(0)); + smr = readl_relaxed(gr0_base + ARM_SMMU_GR0_SMR(0)); smmu->smr_mask_mask = smr >> SMR_MASK_SHIFT; } |