Add IOMMU_TYPE definition. In the mt8195, we have another IOMMU_TYPE:
infra iommu, also there will be another APU_IOMMU, thus, use 2bits for the
IOMMU_TYPE.

Signed-off-by: Yong Wu <yong...@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno 
<angelogioacchino.delre...@collabora.com>
---
 drivers/iommu/mtk_iommu.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 47d5f34f4db0..418ec0b7a43b 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -126,9 +126,17 @@
 #define SHARE_PGTABLE                  BIT(10) /* 2 HW share pgtable */
 #define DCM_DISABLE                    BIT(11)
 #define NOT_STD_AXI_MODE               BIT(12)
+/* 2 bits: iommu type */
+#define MTK_IOMMU_TYPE_MM              (0x0 << 13)
+#define MTK_IOMMU_TYPE_INFRA           (0x1 << 13)
+#define MTK_IOMMU_TYPE_MASK            (0x3 << 13)
 
-#define MTK_IOMMU_HAS_FLAG(pdata, _x) \
-               ((((pdata)->flags) & (_x)) == (_x))
+#define MTK_IOMMU_HAS_FLAG(pdata, _x)  (!!(((pdata)->flags) & (_x)))
+
+#define MTK_IOMMU_HAS_FLAG_MASK(pdata, _x, mask)       \
+                               ((((pdata)->flags) & (mask)) == (_x))
+#define MTK_IOMMU_IS_TYPE(pdata, _x)   MTK_IOMMU_HAS_FLAG_MASK(pdata, _x,\
+                                                       MTK_IOMMU_TYPE_MASK)
 
 struct mtk_iommu_domain {
        struct io_pgtable_cfg           cfg;
-- 
2.18.0

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to