iommu/arm-smmu: Rename arm-smmu-regs.h
authorRobin Murphy <robin.murphy@arm.com>
Thu, 15 Aug 2019 18:37:32 +0000 (19:37 +0100)
committerWill Deacon <will@kernel.org>
Mon, 19 Aug 2019 15:52:47 +0000 (16:52 +0100)
We're about to start using it for more than just register definitions,
so generalise the name.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/arm-smmu-regs.h [deleted file]
drivers/iommu/arm-smmu.c
drivers/iommu/arm-smmu.h [new file with mode: 0644]
drivers/iommu/qcom_iommu.c

diff --git a/drivers/iommu/arm-smmu-regs.h b/drivers/iommu/arm-smmu-regs.h
deleted file mode 100644 (file)
index a8e2881..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * IOMMU API for ARM architected SMMU implementations.
- *
- * Copyright (C) 2013 ARM Limited
- *
- * Author: Will Deacon <will.deacon@arm.com>
- */
-
-#ifndef _ARM_SMMU_REGS_H
-#define _ARM_SMMU_REGS_H
-
-#include <linux/bits.h>
-
-/* Configuration registers */
-#define ARM_SMMU_GR0_sCR0              0x0
-#define sCR0_VMID16EN                  BIT(31)
-#define sCR0_BSU                       GENMASK(15, 14)
-#define sCR0_FB                                BIT(13)
-#define sCR0_PTM                       BIT(12)
-#define sCR0_VMIDPNE                   BIT(11)
-#define sCR0_USFCFG                    BIT(10)
-#define sCR0_GCFGFIE                   BIT(5)
-#define sCR0_GCFGFRE                   BIT(4)
-#define sCR0_EXIDENABLE                        BIT(3)
-#define sCR0_GFIE                      BIT(2)
-#define sCR0_GFRE                      BIT(1)
-#define sCR0_CLIENTPD                  BIT(0)
-
-/* Auxiliary Configuration register */
-#define ARM_SMMU_GR0_sACR              0x10
-
-/* Identification registers */
-#define ARM_SMMU_GR0_ID0               0x20
-#define ID0_S1TS                       BIT(30)
-#define ID0_S2TS                       BIT(29)
-#define ID0_NTS                                BIT(28)
-#define ID0_SMS                                BIT(27)
-#define ID0_ATOSNS                     BIT(26)
-#define ID0_PTFS_NO_AARCH32            BIT(25)
-#define ID0_PTFS_NO_AARCH32S           BIT(24)
-#define ID0_NUMIRPT                    GENMASK(23, 16)
-#define ID0_CTTW                       BIT(14)
-#define ID0_NUMSIDB                    GENMASK(12, 9)
-#define ID0_EXIDS                      BIT(8)
-#define ID0_NUMSMRG                    GENMASK(7, 0)
-
-#define ARM_SMMU_GR0_ID1               0x24
-#define ID1_PAGESIZE                   BIT(31)
-#define ID1_NUMPAGENDXB                        GENMASK(30, 28)
-#define ID1_NUMS2CB                    GENMASK(23, 16)
-#define ID1_NUMCB                      GENMASK(7, 0)
-
-#define ARM_SMMU_GR0_ID2               0x28
-#define ID2_VMID16                     BIT(15)
-#define ID2_PTFS_64K                   BIT(14)
-#define ID2_PTFS_16K                   BIT(13)
-#define ID2_PTFS_4K                    BIT(12)
-#define ID2_UBS                                GENMASK(11, 8)
-#define ID2_OAS                                GENMASK(7, 4)
-#define ID2_IAS                                GENMASK(3, 0)
-
-#define ARM_SMMU_GR0_ID3               0x2c
-#define ARM_SMMU_GR0_ID4               0x30
-#define ARM_SMMU_GR0_ID5               0x34
-#define ARM_SMMU_GR0_ID6               0x38
-
-#define ARM_SMMU_GR0_ID7               0x3c
-#define ID7_MAJOR                      GENMASK(7, 4)
-#define ID7_MINOR                      GENMASK(3, 0)
-
-#define ARM_SMMU_GR0_sGFSR             0x48
-#define ARM_SMMU_GR0_sGFSYNR0          0x50
-#define ARM_SMMU_GR0_sGFSYNR1          0x54
-#define ARM_SMMU_GR0_sGFSYNR2          0x58
-
-/* Global TLB invalidation */
-#define ARM_SMMU_GR0_TLBIVMID          0x64
-#define ARM_SMMU_GR0_TLBIALLNSNH       0x68
-#define ARM_SMMU_GR0_TLBIALLH          0x6c
-#define ARM_SMMU_GR0_sTLBGSYNC         0x70
-
-#define ARM_SMMU_GR0_sTLBGSTATUS       0x74
-#define sTLBGSTATUS_GSACTIVE           BIT(0)
-
-/* Stream mapping registers */
-#define ARM_SMMU_GR0_SMR(n)            (0x800 + ((n) << 2))
-#define SMR_VALID                      BIT(31)
-#define SMR_MASK                       GENMASK(31, 16)
-#define SMR_ID                         GENMASK(15, 0)
-
-#define ARM_SMMU_GR0_S2CR(n)           (0xc00 + ((n) << 2))
-#define S2CR_PRIVCFG                   GENMASK(25, 24)
-enum arm_smmu_s2cr_privcfg {
-       S2CR_PRIVCFG_DEFAULT,
-       S2CR_PRIVCFG_DIPAN,
-       S2CR_PRIVCFG_UNPRIV,
-       S2CR_PRIVCFG_PRIV,
-};
-#define S2CR_TYPE                      GENMASK(17, 16)
-enum arm_smmu_s2cr_type {
-       S2CR_TYPE_TRANS,
-       S2CR_TYPE_BYPASS,
-       S2CR_TYPE_FAULT,
-};
-#define S2CR_EXIDVALID                 BIT(10)
-#define S2CR_CBNDX                     GENMASK(7, 0)
-
-/* Context bank attribute registers */
-#define ARM_SMMU_GR1_CBAR(n)           (0x0 + ((n) << 2))
-#define CBAR_IRPTNDX                   GENMASK(31, 24)
-#define CBAR_TYPE                      GENMASK(17, 16)
-enum arm_smmu_cbar_type {
-       CBAR_TYPE_S2_TRANS,
-       CBAR_TYPE_S1_TRANS_S2_BYPASS,
-       CBAR_TYPE_S1_TRANS_S2_FAULT,
-       CBAR_TYPE_S1_TRANS_S2_TRANS,
-};
-#define CBAR_S1_MEMATTR                        GENMASK(15, 12)
-#define CBAR_S1_MEMATTR_WB             0xf
-#define CBAR_S1_BPSHCFG                        GENMASK(9, 8)
-#define CBAR_S1_BPSHCFG_NSH            3
-#define CBAR_VMID                      GENMASK(7, 0)
-
-#define ARM_SMMU_GR1_CBFRSYNRA(n)      (0x400 + ((n) << 2))
-
-#define ARM_SMMU_GR1_CBA2R(n)          (0x800 + ((n) << 2))
-#define CBA2R_VMID16                   GENMASK(31, 16)
-#define CBA2R_VA64                     BIT(0)
-
-#define ARM_SMMU_CB_SCTLR              0x0
-#define SCTLR_S1_ASIDPNE               BIT(12)
-#define SCTLR_CFCFG                    BIT(7)
-#define SCTLR_CFIE                     BIT(6)
-#define SCTLR_CFRE                     BIT(5)
-#define SCTLR_E                                BIT(4)
-#define SCTLR_AFE                      BIT(2)
-#define SCTLR_TRE                      BIT(1)
-#define SCTLR_M                                BIT(0)
-
-#define ARM_SMMU_CB_ACTLR              0x4
-
-#define ARM_SMMU_CB_RESUME             0x8
-#define RESUME_TERMINATE               BIT(0)
-
-#define ARM_SMMU_CB_TCR2               0x10
-#define TCR2_SEP                       GENMASK(17, 15)
-#define TCR2_SEP_UPSTREAM              0x7
-#define TCR2_AS                                BIT(4)
-
-#define ARM_SMMU_CB_TTBR0              0x20
-#define ARM_SMMU_CB_TTBR1              0x28
-#define TTBRn_ASID                     GENMASK_ULL(63, 48)
-
-#define ARM_SMMU_CB_TCR                        0x30
-#define ARM_SMMU_CB_CONTEXTIDR         0x34
-#define ARM_SMMU_CB_S1_MAIR0           0x38
-#define ARM_SMMU_CB_S1_MAIR1           0x3c
-
-#define ARM_SMMU_CB_PAR                        0x50
-#define CB_PAR_F                       BIT(0)
-
-#define ARM_SMMU_CB_FSR                        0x58
-#define FSR_MULTI                      BIT(31)
-#define FSR_SS                         BIT(30)
-#define FSR_UUT                                BIT(8)
-#define FSR_ASF                                BIT(7)
-#define FSR_TLBLKF                     BIT(6)
-#define FSR_TLBMCF                     BIT(5)
-#define FSR_EF                         BIT(4)
-#define FSR_PF                         BIT(3)
-#define FSR_AFF                                BIT(2)
-#define FSR_TF                         BIT(1)
-
-#define FSR_IGN                                (FSR_AFF | FSR_ASF | \
-                                        FSR_TLBMCF | FSR_TLBLKF)
-#define FSR_FAULT                      (FSR_MULTI | FSR_SS | FSR_UUT | \
-                                        FSR_EF | FSR_PF | FSR_TF | FSR_IGN)
-
-#define ARM_SMMU_CB_FAR                        0x60
-
-#define ARM_SMMU_CB_FSYNR0             0x68
-#define FSYNR0_WNR                     BIT(4)
-
-#define ARM_SMMU_CB_S1_TLBIVA          0x600
-#define ARM_SMMU_CB_S1_TLBIASID                0x610
-#define ARM_SMMU_CB_S1_TLBIVAL         0x620
-#define ARM_SMMU_CB_S2_TLBIIPAS2       0x630
-#define ARM_SMMU_CB_S2_TLBIIPAS2L      0x638
-#define ARM_SMMU_CB_TLBSYNC            0x7f0
-#define ARM_SMMU_CB_TLBSTATUS          0x7f4
-#define ARM_SMMU_CB_ATS1PR             0x800
-
-#define ARM_SMMU_CB_ATSR               0x8f0
-#define ATSR_ACTIVE                    BIT(0)
-
-#endif /* _ARM_SMMU_REGS_H */
index e9fd9117109e6e405575390f60e1f717ec1b51bb..f3b8301a305925b4e08962a6f3707f5cde7b119d 100644 (file)
@@ -46,7 +46,7 @@
 #include <linux/amba/bus.h>
 #include <linux/fsl/mc.h>
 
-#include "arm-smmu-regs.h"
+#include "arm-smmu.h"
 
 /*
  * Apparently, some Qualcomm arm64 platforms which appear to expose their SMMU
diff --git a/drivers/iommu/arm-smmu.h b/drivers/iommu/arm-smmu.h
new file mode 100644 (file)
index 0000000..ccc3097
--- /dev/null
@@ -0,0 +1,197 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * IOMMU API for ARM architected SMMU implementations.
+ *
+ * Copyright (C) 2013 ARM Limited
+ *
+ * Author: Will Deacon <will.deacon@arm.com>
+ */
+
+#ifndef _ARM_SMMU_H
+#define _ARM_SMMU_H
+
+#include <linux/bits.h>
+
+/* Configuration registers */
+#define ARM_SMMU_GR0_sCR0              0x0
+#define sCR0_VMID16EN                  BIT(31)
+#define sCR0_BSU                       GENMASK(15, 14)
+#define sCR0_FB                                BIT(13)
+#define sCR0_PTM                       BIT(12)
+#define sCR0_VMIDPNE                   BIT(11)
+#define sCR0_USFCFG                    BIT(10)
+#define sCR0_GCFGFIE                   BIT(5)
+#define sCR0_GCFGFRE                   BIT(4)
+#define sCR0_EXIDENABLE                        BIT(3)
+#define sCR0_GFIE                      BIT(2)
+#define sCR0_GFRE                      BIT(1)
+#define sCR0_CLIENTPD                  BIT(0)
+
+/* Auxiliary Configuration register */
+#define ARM_SMMU_GR0_sACR              0x10
+
+/* Identification registers */
+#define ARM_SMMU_GR0_ID0               0x20
+#define ID0_S1TS                       BIT(30)
+#define ID0_S2TS                       BIT(29)
+#define ID0_NTS                                BIT(28)
+#define ID0_SMS                                BIT(27)
+#define ID0_ATOSNS                     BIT(26)
+#define ID0_PTFS_NO_AARCH32            BIT(25)
+#define ID0_PTFS_NO_AARCH32S           BIT(24)
+#define ID0_NUMIRPT                    GENMASK(23, 16)
+#define ID0_CTTW                       BIT(14)
+#define ID0_NUMSIDB                    GENMASK(12, 9)
+#define ID0_EXIDS                      BIT(8)
+#define ID0_NUMSMRG                    GENMASK(7, 0)
+
+#define ARM_SMMU_GR0_ID1               0x24
+#define ID1_PAGESIZE                   BIT(31)
+#define ID1_NUMPAGENDXB                        GENMASK(30, 28)
+#define ID1_NUMS2CB                    GENMASK(23, 16)
+#define ID1_NUMCB                      GENMASK(7, 0)
+
+#define ARM_SMMU_GR0_ID2               0x28
+#define ID2_VMID16                     BIT(15)
+#define ID2_PTFS_64K                   BIT(14)
+#define ID2_PTFS_16K                   BIT(13)
+#define ID2_PTFS_4K                    BIT(12)
+#define ID2_UBS                                GENMASK(11, 8)
+#define ID2_OAS                                GENMASK(7, 4)
+#define ID2_IAS                                GENMASK(3, 0)
+
+#define ARM_SMMU_GR0_ID3               0x2c
+#define ARM_SMMU_GR0_ID4               0x30
+#define ARM_SMMU_GR0_ID5               0x34
+#define ARM_SMMU_GR0_ID6               0x38
+
+#define ARM_SMMU_GR0_ID7               0x3c
+#define ID7_MAJOR                      GENMASK(7, 4)
+#define ID7_MINOR                      GENMASK(3, 0)
+
+#define ARM_SMMU_GR0_sGFSR             0x48
+#define ARM_SMMU_GR0_sGFSYNR0          0x50
+#define ARM_SMMU_GR0_sGFSYNR1          0x54
+#define ARM_SMMU_GR0_sGFSYNR2          0x58
+
+/* Global TLB invalidation */
+#define ARM_SMMU_GR0_TLBIVMID          0x64
+#define ARM_SMMU_GR0_TLBIALLNSNH       0x68
+#define ARM_SMMU_GR0_TLBIALLH          0x6c
+#define ARM_SMMU_GR0_sTLBGSYNC         0x70
+
+#define ARM_SMMU_GR0_sTLBGSTATUS       0x74
+#define sTLBGSTATUS_GSACTIVE           BIT(0)
+
+/* Stream mapping registers */
+#define ARM_SMMU_GR0_SMR(n)            (0x800 + ((n) << 2))
+#define SMR_VALID                      BIT(31)
+#define SMR_MASK                       GENMASK(31, 16)
+#define SMR_ID                         GENMASK(15, 0)
+
+#define ARM_SMMU_GR0_S2CR(n)           (0xc00 + ((n) << 2))
+#define S2CR_PRIVCFG                   GENMASK(25, 24)
+enum arm_smmu_s2cr_privcfg {
+       S2CR_PRIVCFG_DEFAULT,
+       S2CR_PRIVCFG_DIPAN,
+       S2CR_PRIVCFG_UNPRIV,
+       S2CR_PRIVCFG_PRIV,
+};
+#define S2CR_TYPE                      GENMASK(17, 16)
+enum arm_smmu_s2cr_type {
+       S2CR_TYPE_TRANS,
+       S2CR_TYPE_BYPASS,
+       S2CR_TYPE_FAULT,
+};
+#define S2CR_EXIDVALID                 BIT(10)
+#define S2CR_CBNDX                     GENMASK(7, 0)
+
+/* Context bank attribute registers */
+#define ARM_SMMU_GR1_CBAR(n)           (0x0 + ((n) << 2))
+#define CBAR_IRPTNDX                   GENMASK(31, 24)
+#define CBAR_TYPE                      GENMASK(17, 16)
+enum arm_smmu_cbar_type {
+       CBAR_TYPE_S2_TRANS,
+       CBAR_TYPE_S1_TRANS_S2_BYPASS,
+       CBAR_TYPE_S1_TRANS_S2_FAULT,
+       CBAR_TYPE_S1_TRANS_S2_TRANS,
+};
+#define CBAR_S1_MEMATTR                        GENMASK(15, 12)
+#define CBAR_S1_MEMATTR_WB             0xf
+#define CBAR_S1_BPSHCFG                        GENMASK(9, 8)
+#define CBAR_S1_BPSHCFG_NSH            3
+#define CBAR_VMID                      GENMASK(7, 0)
+
+#define ARM_SMMU_GR1_CBFRSYNRA(n)      (0x400 + ((n) << 2))
+
+#define ARM_SMMU_GR1_CBA2R(n)          (0x800 + ((n) << 2))
+#define CBA2R_VMID16                   GENMASK(31, 16)
+#define CBA2R_VA64                     BIT(0)
+
+#define ARM_SMMU_CB_SCTLR              0x0
+#define SCTLR_S1_ASIDPNE               BIT(12)
+#define SCTLR_CFCFG                    BIT(7)
+#define SCTLR_CFIE                     BIT(6)
+#define SCTLR_CFRE                     BIT(5)
+#define SCTLR_E                                BIT(4)
+#define SCTLR_AFE                      BIT(2)
+#define SCTLR_TRE                      BIT(1)
+#define SCTLR_M                                BIT(0)
+
+#define ARM_SMMU_CB_ACTLR              0x4
+
+#define ARM_SMMU_CB_RESUME             0x8
+#define RESUME_TERMINATE               BIT(0)
+
+#define ARM_SMMU_CB_TCR2               0x10
+#define TCR2_SEP                       GENMASK(17, 15)
+#define TCR2_SEP_UPSTREAM              0x7
+#define TCR2_AS                                BIT(4)
+
+#define ARM_SMMU_CB_TTBR0              0x20
+#define ARM_SMMU_CB_TTBR1              0x28
+#define TTBRn_ASID                     GENMASK_ULL(63, 48)
+
+#define ARM_SMMU_CB_TCR                        0x30
+#define ARM_SMMU_CB_CONTEXTIDR         0x34
+#define ARM_SMMU_CB_S1_MAIR0           0x38
+#define ARM_SMMU_CB_S1_MAIR1           0x3c
+
+#define ARM_SMMU_CB_PAR                        0x50
+#define CB_PAR_F                       BIT(0)
+
+#define ARM_SMMU_CB_FSR                        0x58
+#define FSR_MULTI                      BIT(31)
+#define FSR_SS                         BIT(30)
+#define FSR_UUT                                BIT(8)
+#define FSR_ASF                                BIT(7)
+#define FSR_TLBLKF                     BIT(6)
+#define FSR_TLBMCF                     BIT(5)
+#define FSR_EF                         BIT(4)
+#define FSR_PF                         BIT(3)
+#define FSR_AFF                                BIT(2)
+#define FSR_TF                         BIT(1)
+
+#define FSR_IGN                                (FSR_AFF | FSR_ASF | \
+                                        FSR_TLBMCF | FSR_TLBLKF)
+#define FSR_FAULT                      (FSR_MULTI | FSR_SS | FSR_UUT | \
+                                        FSR_EF | FSR_PF | FSR_TF | FSR_IGN)
+
+#define ARM_SMMU_CB_FAR                        0x60
+
+#define ARM_SMMU_CB_FSYNR0             0x68
+#define FSYNR0_WNR                     BIT(4)
+
+#define ARM_SMMU_CB_S1_TLBIVA          0x600
+#define ARM_SMMU_CB_S1_TLBIASID                0x610
+#define ARM_SMMU_CB_S1_TLBIVAL         0x620
+#define ARM_SMMU_CB_S2_TLBIIPAS2       0x630
+#define ARM_SMMU_CB_S2_TLBIIPAS2L      0x638
+#define ARM_SMMU_CB_TLBSYNC            0x7f0
+#define ARM_SMMU_CB_TLBSTATUS          0x7f4
+#define ARM_SMMU_CB_ATS1PR             0x800
+
+#define ARM_SMMU_CB_ATSR               0x8f0
+#define ATSR_ACTIVE                    BIT(0)
+
+#endif /* _ARM_SMMU_H */
index 60a125dd73005d2f3a0383b95c0e5ac243300d7f..a2062d13584f55fb1fd093471b72850e895b05e6 100644 (file)
@@ -33,7 +33,7 @@
 #include <linux/slab.h>
 #include <linux/spinlock.h>
 
-#include "arm-smmu-regs.h"
+#include "arm-smmu.h"
 
 #define SMMU_INTR_SEL_NS     0x2000