iommu/io-pgtable: Indicate granule for TLB maintenance
authorRobin Murphy <robin.murphy@arm.com>
Mon, 7 Dec 2015 18:18:53 +0000 (18:18 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 17 Dec 2015 12:05:34 +0000 (12:05 +0000)
commit06c610e8f32ba2fe41d57e1718611c2ec5024878
tree1255fe5238bac58717ff0bbf56beb48625153021
parent2eb97c78613082f308c0b39366c034cb589b8ee9
iommu/io-pgtable: Indicate granule for TLB maintenance

IOMMU hardware with range-based TLB maintenance commands can work
happily with the iova and size arguments passed via the tlb_add_flush
callback, but for IOMMUs which require separate commands per entry in
the range, it is not straightforward to infer the necessary granularity
when it comes to issuing the actual commands.

Add an additional argument indicating the granularity for the benefit
of drivers needing to know, and update the ARM LPAE code appropriately
(for non-leaf invalidations we currently just assume the worst-case
page granularity rather than walking the table to check).

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu-v3.c
drivers/iommu/arm-smmu.c
drivers/iommu/io-pgtable-arm.c
drivers/iommu/io-pgtable.h
drivers/iommu/ipmmu-vmsa.c