|
@@ -1700,13 +1700,12 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
|
|
|
id = readl_relaxed(gr0_base + ARM_SMMU_GR0_ID1);
|
|
|
smmu->pagesize = (id & ID1_PAGESIZE) ? SZ_64K : SZ_4K;
|
|
|
|
|
|
- /* Check that we ioremapped enough */
|
|
|
+ /* Check for size mismatch of SMMU address space from mapped region */
|
|
|
size = 1 << (((id >> ID1_NUMPAGENDXB_SHIFT) & ID1_NUMPAGENDXB_MASK) + 1);
|
|
|
size *= (smmu->pagesize << 1);
|
|
|
- if (smmu->size < size)
|
|
|
- dev_warn(smmu->dev,
|
|
|
- "device is 0x%lx bytes but only mapped 0x%lx!\n",
|
|
|
- size, smmu->size);
|
|
|
+ if (smmu->size != size)
|
|
|
+ dev_warn(smmu->dev, "SMMU address space size (0x%lx) differs "
|
|
|
+ "from mapped region size (0x%lx)!\n", size, smmu->size);
|
|
|
|
|
|
smmu->num_s2_context_banks = (id >> ID1_NUMS2CB_SHIFT) &
|
|
|
ID1_NUMS2CB_MASK;
|