summaryrefslogtreecommitdiffstats
path: root/include/linux/io-pgtable.h
diff options
context:
space:
mode:
authorWill Deacon <will@kernel.org>2020-01-10 14:51:59 +0000
committerWill Deacon <will@kernel.org>2020-01-10 15:52:25 +0000
commitac4b80e5b9d0ecf906300d79e4dc4df5526579a8 (patch)
tree276ac7bad2eec3350d49069c549eabc364e8b0b3 /include/linux/io-pgtable.h
parentfba6e960772b7b68189168abc3259384b7a44388 (diff)
downloadlinux-ac4b80e5b9d0ecf906300d79e4dc4df5526579a8.tar.gz
linux-ac4b80e5b9d0ecf906300d79e4dc4df5526579a8.tar.bz2
linux-ac4b80e5b9d0ecf906300d79e4dc4df5526579a8.zip
iommu/io-pgtable-arm: Rationalise VTCR handling
Commit 05a648cd2dd7 ("iommu/io-pgtable-arm: Rationalise TCR handling") reworked the way in which the TCR register value is returned from the io-pgtable code when targetting the Arm long-descriptor format, in preparation for allowing page-tables to target TTBR1. As it turns out, the new interface is a lot nicer to use, so do the same conversion for the VTCR register even though there is only a single base register for stage-2 translation. Cc: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'include/linux/io-pgtable.h')
-rw-r--r--include/linux/io-pgtable.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/io-pgtable.h b/include/linux/io-pgtable.h
index 6ae104cedfd7..40c1b7745fb6 100644
--- a/include/linux/io-pgtable.h
+++ b/include/linux/io-pgtable.h
@@ -114,7 +114,15 @@ struct io_pgtable_cfg {
struct {
u64 vttbr;
- u64 vtcr;
+ struct {
+ u32 ps:3;
+ u32 tg:2;
+ u32 sh:2;
+ u32 orgn:2;
+ u32 irgn:2;
+ u32 sl:2;
+ u32 tsz:6;
+ } vtcr;
} arm_lpae_s2_cfg;
struct {