]> git.baikalelectronics.ru Git - kernel.git/commit
iommu/arm-smmu-v3: Add SMMUv3.2 range invalidation support
authorRob Herring <robh@kernel.org>
Mon, 24 Feb 2020 22:31:29 +0000 (16:31 -0600)
committerWill Deacon <will@kernel.org>
Wed, 18 Mar 2020 21:37:10 +0000 (21:37 +0000)
commit33b36bd6217f12cabcc8a171c6bd1b4d47c1d2f0
treee9e05cfd97261983d82fcaa086fdd5d8fe9f824b
parent19931fb71bcb4e6533a952fe09db4e33a54a31c8
iommu/arm-smmu-v3: Add SMMUv3.2 range invalidation support

Arm SMMUv3.2 adds support for TLB range invalidate operations.
Support for range invalidate is determined by the RIL bit in the IDR3
register.

The range invalidate is in units of the leaf page size and operates on
1-32 chunks of a power of 2 multiple pages. First, we determine from the
size what power of 2 multiple we can use. Then we calculate how many
chunks (1-31) of the power of 2 size for the range on the iteration. On
each iteration, we move up in size by at least 5 bits.

Cc: Jean-Philippe Brucker <jean-philippe@linaro.org>
Cc: Will Deacon <will@kernel.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm-smmu-v3.c