[PATCH v6 15/34] iommu/mediatek: Add IOMMU_TYPE flag

Matthias Brugger matthias.bgg at gmail.com
Thu Apr 28 07:17:58 PDT 2022



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.wu at mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at 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;



More information about the Linux-mediatek mailing list