iommu/mediatek: Add IOMMU_TYPE flag
authorYong Wu <yong.wu@mediatek.com>
Tue, 3 May 2022 07:14:07 +0000 (15:14 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 4 May 2022 08:39:39 +0000 (10:39 +0200)
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.wu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Link: https://lore.kernel.org/r/20220503071427.2285-17-yong.wu@mediatek.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/mtk_iommu.c

index 937478cd89665310a6db868d4fbf7e7103265640..b5b95d9a372ec9f4fc4460c237ed3fb61f4b09be 100644 (file)
 #define SHARE_PGTABLE                  BIT(10) /* 2 HW share pgtable */
 #define DCM_DISABLE                    BIT(11)
 #define STD_AXI_MODE                   BIT(12) /* For non MM iommu */
+/* 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_MASK(pdata, _x, mask)       \
+                               ((((pdata)->flags) & (mask)) == (_x))
+
+#define MTK_IOMMU_HAS_FLAG(pdata, _x)  MTK_IOMMU_HAS_FLAG_MASK(pdata, _x, _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;