On 07/04/2022 09:57, Yong Wu wrote:
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 84d661e0b371..642949aad47e 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)))

That could be:
MTK_IOMMU_HAS_FLAG(pdata, _x) \
                MTK_IOMMU_HAS_FLAG_MASK(pdata, _x, _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;
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to