iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982
authorRobin Murphy <robin.murphy@arm.com>
Wed, 10 May 2023 15:38:43 +0000 (16:38 +0100)
committerWill Deacon <will@kernel.org>
Thu, 8 Jun 2023 20:58:12 +0000 (21:58 +0100)
commitf322e8af35c7f23a8c08b595c38d6c855b2d836f
tree1a91a9fdb93761f0c8e29f693ff22337bf847c3e
parent44c026a73be8038f03dbdeef028b642880cf1511
iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982

MMU-600 versions prior to r1p0 fail to correctly generate a WFE wakeup
event when the command queue transitions fom full to non-full. We can
easily work around this by simply hiding the SEV capability such that we
fall back to polling for space in the queue - since MMU-600 implements
MSIs we wouldn't expect to need SEV for sync completion either, so this
should have little to no impact.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Link: https://lore.kernel.org/r/08adbe3d01024d8382a478325f73b56851f76e49.1683731256.git.robin.murphy@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
Documentation/arm64/silicon-errata.rst
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h