iommu/arm-smmu-v3: Don't reserve implementation defined register space
authorJean-Philippe Brucker <jean-philippe@linaro.org>
Wed, 13 May 2020 11:02:57 +0000 (13:02 +0200)
committerWill Deacon <will@kernel.org>
Mon, 18 May 2020 14:36:01 +0000 (15:36 +0100)
commit52f3fab0067d6fa9e99c1b7f63265dd48ca76046
tree20c048c36e20e8f83cd5eda12b70b17360d0b4f1
parentd100ff3843b731c5c0c974bc9210cf092a7ec9b6
iommu/arm-smmu-v3: Don't reserve implementation defined register space

Some SMMUv3 implementation embed the Perf Monitor Group Registers (PMCG)
inside the first 64kB region of the SMMU. Since PMCG are managed by a
separate driver, this layout causes resource reservation conflicts
during boot.

To avoid this conflict, don't reserve the MMIO regions that are
implementation defined. Although devm_ioremap_resource() still works on
full pages under the hood, this way we benefit from resource conflict
checks.

Fixes: 7d839b4b9e00 ("perf/smmuv3: Add arm64 smmuv3 pmu driver")
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/20200513110255.597203-1-jean-philippe@linaro.org
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm-smmu-v3.c