All of lore.kernel.org
 help / color / mirror / Atom feed
From: AngeloGioacchino Del Regno  <angelogioacchino.delregno@collabora.com>
To: Yong Wu <yong.wu@mediatek.com>, Joerg Roedel <joro@8bytes.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Will Deacon <will@kernel.org>
Cc: Robin Murphy <robin.murphy@arm.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Tomasz Figa <tfiga@chromium.org>,
	linux-mediatek@lists.infradead.org, srv_heupstream@mediatek.com,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	iommu@lists.linux-foundation.org,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	youlin.pei@mediatek.com, anan.sun@mediatek.com,
	xueqi.zhang@mediatek.com, yen-chang.chen@mediatek.com,
	mingyuan.ma@mediatek.com, yf.wang@mediatek.com,
	libo.kang@mediatek.com, chengci.xu@mediatek.com
Subject: Re: [PATCH v4 27/35] iommu/mediatek: Remove mtk_iommu.h
Date: Thu, 27 Jan 2022 12:15:18 +0100	[thread overview]
Message-ID: <8e1847d0-7c6f-b022-999b-666cb90e9931@collabora.com> (raw)
In-Reply-To: <20220125085634.17972-28-yong.wu@mediatek.com>

Il 25/01/22 09:56, Yong Wu ha scritto:
> Currently there is only compare_of/release_of/a suspend structure in the
> header file. I think it is no need to keep a header file only for these.
> Move these into the c file and rm this header file.
> 
> I think there should be a common helper for compare_of and release_of.
> There is many copy in drm, it should be another topic.
> 
> Signed-off-by: Yong Wu <yong.wu@mediatek.com>
> ---
>   drivers/iommu/mtk_iommu.c    | 25 ++++++++++++++++++++-
>   drivers/iommu/mtk_iommu.h    | 42 ------------------------------------
>   drivers/iommu/mtk_iommu_v1.c | 21 +++++++++++++++---
>   3 files changed, 42 insertions(+), 46 deletions(-)
>   delete mode 100644 drivers/iommu/mtk_iommu.h
> 
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 80c1e5a75868..f88c7bb235bf 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -14,6 +14,7 @@
>   #include <linux/io.h>
>   #include <linux/iommu.h>
>   #include <linux/iopoll.h>
> +#include <linux/io-pgtable.h>
>   #include <linux/list.h>
>   #include <linux/mfd/syscon.h>
>   #include <linux/module.h>
> @@ -30,7 +31,7 @@
>   #include <asm/barrier.h>
>   #include <soc/mediatek/smi.h>
>   
> -#include "mtk_iommu.h"
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   #define MMU_PT_ADDR_MASK			GENMASK(31, 7)
> @@ -166,6 +167,17 @@ struct mtk_iommu_iova_region {
>   	unsigned long long	size;
>   };
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			misc_ctrl;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +	u32			int_main_control;
> +	u32			ivrp_paddr;
> +	u32			vld_pa_rng;
> +	u32			wr_len_ctrl;
> +};
> +
>   struct mtk_iommu_plat_data {
>   	enum mtk_iommu_plat			m4u_plat;
>   	u32					flags;
> @@ -219,6 +231,17 @@ struct mtk_iommu_domain {
>   	struct mutex			mutex; /* Protect "data" in this structure */
>   };
>   
> +/* TODO: A common helper is expected. */
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

Since it's just one line, at this point you should also open-code these,

as in you can then remove the two helper functions entirely.
So, please do that.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> diff --git a/drivers/iommu/mtk_iommu.h b/drivers/iommu/mtk_iommu.h
> deleted file mode 100644
> index d332f9769f83..000000000000
> --- a/drivers/iommu/mtk_iommu.h
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * Copyright (c) 2015-2016 MediaTek Inc.
> - * Author: Honghui Zhang <honghui.zhang@mediatek.com>
> - */
> -
> -#ifndef _MTK_IOMMU_H_
> -#define _MTK_IOMMU_H_
> -
> -#include <linux/device.h>
> -#include <linux/io.h>
> -#include <linux/io-pgtable.h>
> -#include <linux/iommu.h>
> -#include <linux/spinlock.h>
> -#include <soc/mediatek/smi.h>
> -#include <dt-bindings/memory/mtk-memory-port.h>
> -
> -struct mtk_iommu_suspend_reg {
> -	union {
> -		u32			standard_axi_mode;/* v1 */
> -		u32			misc_ctrl;/* v2 */
> -	};
> -	u32				dcm_dis;
> -	u32				ctrl_reg;
> -	u32				int_control0;
> -	u32				int_main_control;
> -	u32				ivrp_paddr;
> -	u32				vld_pa_rng;
> -	u32				wr_len_ctrl;
> -};
> -
> -static inline int compare_of(struct device *dev, void *data)
> -{
> -	return dev->of_node == data;
> -}
> -
> -static inline void release_of(struct device *dev, void *data)
> -{
> -	of_node_put(data);
> -}
> -
> -#endif
> diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
> index b762a05328d4..23c3bc175153 100644
> --- a/drivers/iommu/mtk_iommu_v1.c
> +++ b/drivers/iommu/mtk_iommu_v1.c
> @@ -7,7 +7,6 @@
>    *
>    * Based on driver/iommu/mtk_iommu.c
>    */
> -#include <linux/memblock.h>
>   #include <linux/bug.h>
>   #include <linux/clk.h>
>   #include <linux/component.h>
> @@ -28,10 +27,9 @@
>   #include <linux/spinlock.h>
>   #include <asm/barrier.h>
>   #include <asm/dma-iommu.h>
> -#include <linux/init.h>
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   #include <dt-bindings/memory/mt2701-larb-port.h>
>   #include <soc/mediatek/smi.h>
> -#include "mtk_iommu.h"
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   
> @@ -87,6 +85,13 @@
>    */
>   #define M2701_IOMMU_PGT_SIZE			SZ_4M
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			standard_axi_mode;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +};
> +
>   struct mtk_iommu_data {
>   	void __iomem			*base;
>   	int				irq;
> @@ -110,6 +115,16 @@ struct mtk_iommu_domain {
>   	struct mtk_iommu_data		*data;
>   };
>   
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

....And the same comment applies here too.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> 




WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Yong Wu <yong.wu@mediatek.com>, Joerg Roedel <joro@8bytes.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Will Deacon <will@kernel.org>
Cc: youlin.pei@mediatek.com, devicetree@vger.kernel.org,
	srv_heupstream@mediatek.com,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	chengci.xu@mediatek.com, xueqi.zhang@mediatek.com,
	linux-kernel@vger.kernel.org, libo.kang@mediatek.com,
	yen-chang.chen@mediatek.com, iommu@lists.linux-foundation.org,
	yf.wang@mediatek.com, linux-mediatek@lists.infradead.org,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	anan.sun@mediatek.com, Robin Murphy <robin.murphy@arm.com>,
	mingyuan.ma@mediatek.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 27/35] iommu/mediatek: Remove mtk_iommu.h
Date: Thu, 27 Jan 2022 12:15:18 +0100	[thread overview]
Message-ID: <8e1847d0-7c6f-b022-999b-666cb90e9931@collabora.com> (raw)
In-Reply-To: <20220125085634.17972-28-yong.wu@mediatek.com>

Il 25/01/22 09:56, Yong Wu ha scritto:
> Currently there is only compare_of/release_of/a suspend structure in the
> header file. I think it is no need to keep a header file only for these.
> Move these into the c file and rm this header file.
> 
> I think there should be a common helper for compare_of and release_of.
> There is many copy in drm, it should be another topic.
> 
> Signed-off-by: Yong Wu <yong.wu@mediatek.com>
> ---
>   drivers/iommu/mtk_iommu.c    | 25 ++++++++++++++++++++-
>   drivers/iommu/mtk_iommu.h    | 42 ------------------------------------
>   drivers/iommu/mtk_iommu_v1.c | 21 +++++++++++++++---
>   3 files changed, 42 insertions(+), 46 deletions(-)
>   delete mode 100644 drivers/iommu/mtk_iommu.h
> 
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 80c1e5a75868..f88c7bb235bf 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -14,6 +14,7 @@
>   #include <linux/io.h>
>   #include <linux/iommu.h>
>   #include <linux/iopoll.h>
> +#include <linux/io-pgtable.h>
>   #include <linux/list.h>
>   #include <linux/mfd/syscon.h>
>   #include <linux/module.h>
> @@ -30,7 +31,7 @@
>   #include <asm/barrier.h>
>   #include <soc/mediatek/smi.h>
>   
> -#include "mtk_iommu.h"
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   #define MMU_PT_ADDR_MASK			GENMASK(31, 7)
> @@ -166,6 +167,17 @@ struct mtk_iommu_iova_region {
>   	unsigned long long	size;
>   };
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			misc_ctrl;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +	u32			int_main_control;
> +	u32			ivrp_paddr;
> +	u32			vld_pa_rng;
> +	u32			wr_len_ctrl;
> +};
> +
>   struct mtk_iommu_plat_data {
>   	enum mtk_iommu_plat			m4u_plat;
>   	u32					flags;
> @@ -219,6 +231,17 @@ struct mtk_iommu_domain {
>   	struct mutex			mutex; /* Protect "data" in this structure */
>   };
>   
> +/* TODO: A common helper is expected. */
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

Since it's just one line, at this point you should also open-code these,

as in you can then remove the two helper functions entirely.
So, please do that.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> diff --git a/drivers/iommu/mtk_iommu.h b/drivers/iommu/mtk_iommu.h
> deleted file mode 100644
> index d332f9769f83..000000000000
> --- a/drivers/iommu/mtk_iommu.h
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * Copyright (c) 2015-2016 MediaTek Inc.
> - * Author: Honghui Zhang <honghui.zhang@mediatek.com>
> - */
> -
> -#ifndef _MTK_IOMMU_H_
> -#define _MTK_IOMMU_H_
> -
> -#include <linux/device.h>
> -#include <linux/io.h>
> -#include <linux/io-pgtable.h>
> -#include <linux/iommu.h>
> -#include <linux/spinlock.h>
> -#include <soc/mediatek/smi.h>
> -#include <dt-bindings/memory/mtk-memory-port.h>
> -
> -struct mtk_iommu_suspend_reg {
> -	union {
> -		u32			standard_axi_mode;/* v1 */
> -		u32			misc_ctrl;/* v2 */
> -	};
> -	u32				dcm_dis;
> -	u32				ctrl_reg;
> -	u32				int_control0;
> -	u32				int_main_control;
> -	u32				ivrp_paddr;
> -	u32				vld_pa_rng;
> -	u32				wr_len_ctrl;
> -};
> -
> -static inline int compare_of(struct device *dev, void *data)
> -{
> -	return dev->of_node == data;
> -}
> -
> -static inline void release_of(struct device *dev, void *data)
> -{
> -	of_node_put(data);
> -}
> -
> -#endif
> diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
> index b762a05328d4..23c3bc175153 100644
> --- a/drivers/iommu/mtk_iommu_v1.c
> +++ b/drivers/iommu/mtk_iommu_v1.c
> @@ -7,7 +7,6 @@
>    *
>    * Based on driver/iommu/mtk_iommu.c
>    */
> -#include <linux/memblock.h>
>   #include <linux/bug.h>
>   #include <linux/clk.h>
>   #include <linux/component.h>
> @@ -28,10 +27,9 @@
>   #include <linux/spinlock.h>
>   #include <asm/barrier.h>
>   #include <asm/dma-iommu.h>
> -#include <linux/init.h>
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   #include <dt-bindings/memory/mt2701-larb-port.h>
>   #include <soc/mediatek/smi.h>
> -#include "mtk_iommu.h"
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   
> @@ -87,6 +85,13 @@
>    */
>   #define M2701_IOMMU_PGT_SIZE			SZ_4M
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			standard_axi_mode;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +};
> +
>   struct mtk_iommu_data {
>   	void __iomem			*base;
>   	int				irq;
> @@ -110,6 +115,16 @@ struct mtk_iommu_domain {
>   	struct mtk_iommu_data		*data;
>   };
>   
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

....And the same comment applies here too.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> 



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

WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Yong Wu <yong.wu@mediatek.com>, Joerg Roedel <joro@8bytes.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Will Deacon <will@kernel.org>
Cc: Robin Murphy <robin.murphy@arm.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Tomasz Figa <tfiga@chromium.org>,
	linux-mediatek@lists.infradead.org, srv_heupstream@mediatek.com,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	iommu@lists.linux-foundation.org,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	youlin.pei@mediatek.com, anan.sun@mediatek.com,
	xueqi.zhang@mediatek.com, yen-chang.chen@mediatek.com,
	mingyuan.ma@mediatek.com, yf.wang@mediatek.com,
	libo.kang@mediatek.com, chengci.xu@mediatek.com
Subject: Re: [PATCH v4 27/35] iommu/mediatek: Remove mtk_iommu.h
Date: Thu, 27 Jan 2022 12:15:18 +0100	[thread overview]
Message-ID: <8e1847d0-7c6f-b022-999b-666cb90e9931@collabora.com> (raw)
In-Reply-To: <20220125085634.17972-28-yong.wu@mediatek.com>

Il 25/01/22 09:56, Yong Wu ha scritto:
> Currently there is only compare_of/release_of/a suspend structure in the
> header file. I think it is no need to keep a header file only for these.
> Move these into the c file and rm this header file.
> 
> I think there should be a common helper for compare_of and release_of.
> There is many copy in drm, it should be another topic.
> 
> Signed-off-by: Yong Wu <yong.wu@mediatek.com>
> ---
>   drivers/iommu/mtk_iommu.c    | 25 ++++++++++++++++++++-
>   drivers/iommu/mtk_iommu.h    | 42 ------------------------------------
>   drivers/iommu/mtk_iommu_v1.c | 21 +++++++++++++++---
>   3 files changed, 42 insertions(+), 46 deletions(-)
>   delete mode 100644 drivers/iommu/mtk_iommu.h
> 
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 80c1e5a75868..f88c7bb235bf 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -14,6 +14,7 @@
>   #include <linux/io.h>
>   #include <linux/iommu.h>
>   #include <linux/iopoll.h>
> +#include <linux/io-pgtable.h>
>   #include <linux/list.h>
>   #include <linux/mfd/syscon.h>
>   #include <linux/module.h>
> @@ -30,7 +31,7 @@
>   #include <asm/barrier.h>
>   #include <soc/mediatek/smi.h>
>   
> -#include "mtk_iommu.h"
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   #define MMU_PT_ADDR_MASK			GENMASK(31, 7)
> @@ -166,6 +167,17 @@ struct mtk_iommu_iova_region {
>   	unsigned long long	size;
>   };
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			misc_ctrl;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +	u32			int_main_control;
> +	u32			ivrp_paddr;
> +	u32			vld_pa_rng;
> +	u32			wr_len_ctrl;
> +};
> +
>   struct mtk_iommu_plat_data {
>   	enum mtk_iommu_plat			m4u_plat;
>   	u32					flags;
> @@ -219,6 +231,17 @@ struct mtk_iommu_domain {
>   	struct mutex			mutex; /* Protect "data" in this structure */
>   };
>   
> +/* TODO: A common helper is expected. */
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

Since it's just one line, at this point you should also open-code these,

as in you can then remove the two helper functions entirely.
So, please do that.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> diff --git a/drivers/iommu/mtk_iommu.h b/drivers/iommu/mtk_iommu.h
> deleted file mode 100644
> index d332f9769f83..000000000000
> --- a/drivers/iommu/mtk_iommu.h
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * Copyright (c) 2015-2016 MediaTek Inc.
> - * Author: Honghui Zhang <honghui.zhang@mediatek.com>
> - */
> -
> -#ifndef _MTK_IOMMU_H_
> -#define _MTK_IOMMU_H_
> -
> -#include <linux/device.h>
> -#include <linux/io.h>
> -#include <linux/io-pgtable.h>
> -#include <linux/iommu.h>
> -#include <linux/spinlock.h>
> -#include <soc/mediatek/smi.h>
> -#include <dt-bindings/memory/mtk-memory-port.h>
> -
> -struct mtk_iommu_suspend_reg {
> -	union {
> -		u32			standard_axi_mode;/* v1 */
> -		u32			misc_ctrl;/* v2 */
> -	};
> -	u32				dcm_dis;
> -	u32				ctrl_reg;
> -	u32				int_control0;
> -	u32				int_main_control;
> -	u32				ivrp_paddr;
> -	u32				vld_pa_rng;
> -	u32				wr_len_ctrl;
> -};
> -
> -static inline int compare_of(struct device *dev, void *data)
> -{
> -	return dev->of_node == data;
> -}
> -
> -static inline void release_of(struct device *dev, void *data)
> -{
> -	of_node_put(data);
> -}
> -
> -#endif
> diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
> index b762a05328d4..23c3bc175153 100644
> --- a/drivers/iommu/mtk_iommu_v1.c
> +++ b/drivers/iommu/mtk_iommu_v1.c
> @@ -7,7 +7,6 @@
>    *
>    * Based on driver/iommu/mtk_iommu.c
>    */
> -#include <linux/memblock.h>
>   #include <linux/bug.h>
>   #include <linux/clk.h>
>   #include <linux/component.h>
> @@ -28,10 +27,9 @@
>   #include <linux/spinlock.h>
>   #include <asm/barrier.h>
>   #include <asm/dma-iommu.h>
> -#include <linux/init.h>
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   #include <dt-bindings/memory/mt2701-larb-port.h>
>   #include <soc/mediatek/smi.h>
> -#include "mtk_iommu.h"
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   
> @@ -87,6 +85,13 @@
>    */
>   #define M2701_IOMMU_PGT_SIZE			SZ_4M
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			standard_axi_mode;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +};
> +
>   struct mtk_iommu_data {
>   	void __iomem			*base;
>   	int				irq;
> @@ -110,6 +115,16 @@ struct mtk_iommu_domain {
>   	struct mtk_iommu_data		*data;
>   };
>   
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

....And the same comment applies here too.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> 




_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Yong Wu <yong.wu@mediatek.com>, Joerg Roedel <joro@8bytes.org>,
	Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Will Deacon <will@kernel.org>
Cc: Robin Murphy <robin.murphy@arm.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Tomasz Figa <tfiga@chromium.org>,
	linux-mediatek@lists.infradead.org, srv_heupstream@mediatek.com,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	iommu@lists.linux-foundation.org,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	youlin.pei@mediatek.com, anan.sun@mediatek.com,
	xueqi.zhang@mediatek.com, yen-chang.chen@mediatek.com,
	mingyuan.ma@mediatek.com, yf.wang@mediatek.com,
	libo.kang@mediatek.com, chengci.xu@mediatek.com
Subject: Re: [PATCH v4 27/35] iommu/mediatek: Remove mtk_iommu.h
Date: Thu, 27 Jan 2022 12:15:18 +0100	[thread overview]
Message-ID: <8e1847d0-7c6f-b022-999b-666cb90e9931@collabora.com> (raw)
In-Reply-To: <20220125085634.17972-28-yong.wu@mediatek.com>

Il 25/01/22 09:56, Yong Wu ha scritto:
> Currently there is only compare_of/release_of/a suspend structure in the
> header file. I think it is no need to keep a header file only for these.
> Move these into the c file and rm this header file.
> 
> I think there should be a common helper for compare_of and release_of.
> There is many copy in drm, it should be another topic.
> 
> Signed-off-by: Yong Wu <yong.wu@mediatek.com>
> ---
>   drivers/iommu/mtk_iommu.c    | 25 ++++++++++++++++++++-
>   drivers/iommu/mtk_iommu.h    | 42 ------------------------------------
>   drivers/iommu/mtk_iommu_v1.c | 21 +++++++++++++++---
>   3 files changed, 42 insertions(+), 46 deletions(-)
>   delete mode 100644 drivers/iommu/mtk_iommu.h
> 
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 80c1e5a75868..f88c7bb235bf 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -14,6 +14,7 @@
>   #include <linux/io.h>
>   #include <linux/iommu.h>
>   #include <linux/iopoll.h>
> +#include <linux/io-pgtable.h>
>   #include <linux/list.h>
>   #include <linux/mfd/syscon.h>
>   #include <linux/module.h>
> @@ -30,7 +31,7 @@
>   #include <asm/barrier.h>
>   #include <soc/mediatek/smi.h>
>   
> -#include "mtk_iommu.h"
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   #define MMU_PT_ADDR_MASK			GENMASK(31, 7)
> @@ -166,6 +167,17 @@ struct mtk_iommu_iova_region {
>   	unsigned long long	size;
>   };
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			misc_ctrl;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +	u32			int_main_control;
> +	u32			ivrp_paddr;
> +	u32			vld_pa_rng;
> +	u32			wr_len_ctrl;
> +};
> +
>   struct mtk_iommu_plat_data {
>   	enum mtk_iommu_plat			m4u_plat;
>   	u32					flags;
> @@ -219,6 +231,17 @@ struct mtk_iommu_domain {
>   	struct mutex			mutex; /* Protect "data" in this structure */
>   };
>   
> +/* TODO: A common helper is expected. */
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

Since it's just one line, at this point you should also open-code these,

as in you can then remove the two helper functions entirely.
So, please do that.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> diff --git a/drivers/iommu/mtk_iommu.h b/drivers/iommu/mtk_iommu.h
> deleted file mode 100644
> index d332f9769f83..000000000000
> --- a/drivers/iommu/mtk_iommu.h
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * Copyright (c) 2015-2016 MediaTek Inc.
> - * Author: Honghui Zhang <honghui.zhang@mediatek.com>
> - */
> -
> -#ifndef _MTK_IOMMU_H_
> -#define _MTK_IOMMU_H_
> -
> -#include <linux/device.h>
> -#include <linux/io.h>
> -#include <linux/io-pgtable.h>
> -#include <linux/iommu.h>
> -#include <linux/spinlock.h>
> -#include <soc/mediatek/smi.h>
> -#include <dt-bindings/memory/mtk-memory-port.h>
> -
> -struct mtk_iommu_suspend_reg {
> -	union {
> -		u32			standard_axi_mode;/* v1 */
> -		u32			misc_ctrl;/* v2 */
> -	};
> -	u32				dcm_dis;
> -	u32				ctrl_reg;
> -	u32				int_control0;
> -	u32				int_main_control;
> -	u32				ivrp_paddr;
> -	u32				vld_pa_rng;
> -	u32				wr_len_ctrl;
> -};
> -
> -static inline int compare_of(struct device *dev, void *data)
> -{
> -	return dev->of_node == data;
> -}
> -
> -static inline void release_of(struct device *dev, void *data)
> -{
> -	of_node_put(data);
> -}
> -
> -#endif
> diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
> index b762a05328d4..23c3bc175153 100644
> --- a/drivers/iommu/mtk_iommu_v1.c
> +++ b/drivers/iommu/mtk_iommu_v1.c
> @@ -7,7 +7,6 @@
>    *
>    * Based on driver/iommu/mtk_iommu.c
>    */
> -#include <linux/memblock.h>
>   #include <linux/bug.h>
>   #include <linux/clk.h>
>   #include <linux/component.h>
> @@ -28,10 +27,9 @@
>   #include <linux/spinlock.h>
>   #include <asm/barrier.h>
>   #include <asm/dma-iommu.h>
> -#include <linux/init.h>
> +#include <dt-bindings/memory/mtk-memory-port.h>
>   #include <dt-bindings/memory/mt2701-larb-port.h>
>   #include <soc/mediatek/smi.h>
> -#include "mtk_iommu.h"
>   
>   #define REG_MMU_PT_BASE_ADDR			0x000
>   
> @@ -87,6 +85,13 @@
>    */
>   #define M2701_IOMMU_PGT_SIZE			SZ_4M
>   
> +struct mtk_iommu_suspend_reg {
> +	u32			standard_axi_mode;
> +	u32			dcm_dis;
> +	u32			ctrl_reg;
> +	u32			int_control0;
> +};
> +
>   struct mtk_iommu_data {
>   	void __iomem			*base;
>   	int				irq;
> @@ -110,6 +115,16 @@ struct mtk_iommu_domain {
>   	struct mtk_iommu_data		*data;
>   };
>   
> +static inline int compare_of(struct device *dev, void *data)
> +{
> +	return dev->of_node == data;
> +}
> +
> +static inline void release_of(struct device *dev, void *data)
> +{
> +	of_node_put(data);
> +}
> +

....And the same comment applies here too.

>   static inline int mtk_iommu_bind(struct device *dev)
>   {
>   	struct mtk_iommu_data *data = dev_get_drvdata(dev);
> 




_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-01-27 11:15 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-25  8:55 [PATCH v4 00/35] MT8195 IOMMU SUPPORT Yong Wu
2022-01-25  8:55 ` Yong Wu
2022-01-25  8:55 ` Yong Wu
2022-01-25  8:55 ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 01/35] dt-bindings: mediatek: mt8195: Add binding for MM IOMMU Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 02/35] dt-bindings: mediatek: mt8195: Add binding for infra IOMMU Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 03/35] iommu/mediatek: Fix 2 HW sharing pgtable issue Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 10:59   ` AngeloGioacchino Del Regno
2022-01-27 10:59     ` AngeloGioacchino Del Regno
2022-01-27 10:59     ` AngeloGioacchino Del Regno
2022-01-27 10:59     ` AngeloGioacchino Del Regno
2022-01-25  8:56 ` [PATCH v4 04/35] iommu/mediatek: Add list_del in mtk_iommu_remove Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 05/35] iommu/mediatek: Remove clk_disable " Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 06/35] iommu/mediatek: Add mutex for m4u_group and m4u_dom in data Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:02   ` AngeloGioacchino Del Regno
2022-01-27 11:02     ` AngeloGioacchino Del Regno
2022-01-27 11:02     ` AngeloGioacchino Del Regno
2022-01-27 11:02     ` AngeloGioacchino Del Regno
2022-01-25  8:56 ` [PATCH v4 07/35] iommu/mediatek: Add mutex for data in the mtk_iommu_domain Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:02   ` AngeloGioacchino Del Regno
2022-01-27 11:02     ` AngeloGioacchino Del Regno
2022-01-27 11:02     ` AngeloGioacchino Del Regno
2022-01-27 11:02     ` AngeloGioacchino Del Regno
2022-01-25  8:56 ` [PATCH v4 08/35] iommu/mediatek: Use kmalloc for protect buffer Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:08   ` AngeloGioacchino Del Regno
2022-01-27 11:08     ` AngeloGioacchino Del Regno
2022-01-27 11:08     ` AngeloGioacchino Del Regno
2022-01-27 11:08     ` AngeloGioacchino Del Regno
2022-02-16  5:54     ` Yong Wu
2022-02-16  5:54       ` Yong Wu
2022-02-16  5:54       ` Yong Wu
2022-02-16  5:54       ` Yong Wu via iommu
2022-02-16  5:59       ` Tomasz Figa
2022-02-16  5:59         ` Tomasz Figa
2022-02-16  5:59         ` Tomasz Figa
2022-02-16  5:59         ` Tomasz Figa
2022-02-16  8:11         ` Yong Wu
2022-02-16  8:11           ` Yong Wu
2022-02-16  8:11           ` Yong Wu
2022-02-16  8:11           ` Yong Wu via iommu
2022-01-25  8:56 ` [PATCH v4 09/35] iommu/mediatek: Adapt sharing and non-sharing pgtable case Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 10/35] iommu/mediatek: Add 12G~16G support for multi domains Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 11/35] iommu/mediatek: Add a flag DCM_DISABLE Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 12/35] iommu/mediatek: Add a flag NON_STD_AXI Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 13/35] iommu/mediatek: Remove the granule in the tlb flush Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 14/35] iommu/mediatek: Always enable output PA over 32bits in isr Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 15/35] iommu/mediatek: Add SUB_COMMON_3BITS flag Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 16/35] iommu/mediatek: Add IOMMU_TYPE flag Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 17/35] iommu/mediatek: Contain MM IOMMU flow with the MM TYPE Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 18/35] iommu/mediatek: Adjust device link when it is sub-common Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 19/35] iommu/mediatek: Allow IOMMU_DOMAIN_UNMANAGED for PCIe VFIO Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 20/35] iommu/mediatek: Add a PM_CLK_AO flag for infra iommu Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 21/35] iommu/mediatek: Add infra iommu support Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 22/35] iommu/mediatek: Add PCIe support Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 23/35] iommu/mediatek: Add mt8195 support Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 24/35] iommu/mediatek: Only adjust code about register base Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 25/35] iommu/mediatek: Just move code position in hw_init Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 26/35] iommu/mediatek: Separate mtk_iommu_data for v1 and v2 Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 27/35] iommu/mediatek: Remove mtk_iommu.h Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:15   ` AngeloGioacchino Del Regno [this message]
2022-01-27 11:15     ` AngeloGioacchino Del Regno
2022-01-27 11:15     ` AngeloGioacchino Del Regno
2022-01-27 11:15     ` AngeloGioacchino Del Regno
2022-01-25  8:56 ` [PATCH v4 28/35] iommu/mediatek-v1: Just rename mtk_iommu to mtk_iommu_v1 Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 29/35] iommu/mediatek: Add mtk_iommu_bank_data structure Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:17   ` AngeloGioacchino Del Regno
2022-01-27 11:17     ` AngeloGioacchino Del Regno
2022-01-27 11:17     ` AngeloGioacchino Del Regno
2022-01-27 11:17     ` AngeloGioacchino Del Regno
2022-01-25  8:56 ` [PATCH v4 30/35] iommu/mediatek: Initialise bank HW for each a bank Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 31/35] iommu/mediatek: Change the domid to iova_region_id Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 32/35] iommu/mediatek: Get the proper bankid for multi banks Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:21   ` AngeloGioacchino Del Regno
2022-01-27 11:21     ` AngeloGioacchino Del Regno
2022-01-27 11:21     ` AngeloGioacchino Del Regno
2022-01-27 11:21     ` AngeloGioacchino Del Regno
2022-01-25  8:56 ` [PATCH v4 33/35] iommu/mediatek: Initialise/Remove for multi bank dev Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56 ` [PATCH v4 34/35] iommu/mediatek: Backup/restore regsiters for multi banks Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:24   ` AngeloGioacchino Del Regno
2022-01-27 11:24     ` AngeloGioacchino Del Regno
2022-01-27 11:24     ` AngeloGioacchino Del Regno
2022-01-27 11:24     ` AngeloGioacchino Del Regno
2022-01-25  8:56 ` [PATCH v4 35/35] iommu/mediatek: mt8195: Enable multi banks for infra iommu Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-25  8:56   ` Yong Wu
2022-01-27 11:25   ` AngeloGioacchino Del Regno
2022-01-27 11:25     ` AngeloGioacchino Del Regno
2022-01-27 11:25     ` AngeloGioacchino Del Regno
2022-01-27 11:25     ` AngeloGioacchino Del Regno

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8e1847d0-7c6f-b022-999b-666cb90e9931@collabora.com \
    --to=angelogioacchino.delregno@collabora.com \
    --cc=anan.sun@mediatek.com \
    --cc=chengci.xu@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hsinyi@chromium.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=libo.kang@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=mingyuan.ma@mediatek.com \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=srv_heupstream@mediatek.com \
    --cc=tfiga@chromium.org \
    --cc=will@kernel.org \
    --cc=xueqi.zhang@mediatek.com \
    --cc=yen-chang.chen@mediatek.com \
    --cc=yf.wang@mediatek.com \
    --cc=yong.wu@mediatek.com \
    --cc=youlin.pei@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.