linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface
@ 2017-01-03 17:34 ` Lorenzo Pieralisi
  2017-01-04  8:00   ` Sricharan
                     ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Lorenzo Pieralisi @ 2017-01-03 17:34 UTC (permalink / raw)
  To: iommu
  Cc: linux-arm-kernel, linux-kernel, Lorenzo Pieralisi,
	Matthias Brugger, Will Deacon, Robin Murphy, Joerg Roedel,
	Marek Szyprowski

With the introduction of the new iommu_{register/get}_instance()
interface in commit e4f10ffe4c9b ("iommu: Make of_iommu_set/get_ops() DT
agnostic") (based on struct fwnode_handle as look-up token, so firmware
agnostic) to register IOMMU instances with the core IOMMU layer there is
no reason to keep the old OF based interface around any longer.

Convert all the IOMMU drivers (and OF IOMMU core code) that rely on the
of_iommu_{set/get}_ops() to the new kernel interface to register/retrieve
IOMMU instances and remove the of_iommu_{set/get}_ops() remaining glue
code in order to complete the interface rework.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
---
Exynos, msm and mtk code compile tested only owing to lack of
test platforms, I would appreciate some help in testing this
patch on those platforms before merging it even if it is just
a simple interface conversion.

Thanks,
Lorenzo

 drivers/iommu/exynos-iommu.c |  2 +-
 drivers/iommu/msm_iommu.c    |  2 +-
 drivers/iommu/mtk_iommu.c    |  2 +-
 drivers/iommu/of_iommu.c     |  4 ++--
 include/linux/of_iommu.h     | 11 -----------
 5 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
index 57ba0d3..b79e4c4 100644
--- a/drivers/iommu/exynos-iommu.c
+++ b/drivers/iommu/exynos-iommu.c
@@ -628,7 +628,7 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
 
 	pm_runtime_enable(dev);
 
-	of_iommu_set_ops(dev->of_node, &exynos_iommu_ops);
+	iommu_register_instance(dev->fwnode, &exynos_iommu_ops);
 
 	return 0;
 }
diff --git a/drivers/iommu/msm_iommu.c b/drivers/iommu/msm_iommu.c
index b09692b..9cd3cee 100644
--- a/drivers/iommu/msm_iommu.c
+++ b/drivers/iommu/msm_iommu.c
@@ -737,7 +737,7 @@ static int msm_iommu_probe(struct platform_device *pdev)
 	}
 
 	list_add(&iommu->dev_node, &qcom_iommu_devices);
-	of_iommu_set_ops(pdev->dev.of_node, &msm_iommu_ops);
+	iommu_register_instance(pdev->dev.fwnode, &msm_iommu_ops);
 
 	pr_info("device mapped at %p, irq %d with %d ctx banks\n",
 		iommu->base, iommu->irq, iommu->ncb);
diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 1479c76..0596ab2 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -655,7 +655,7 @@ static int mtk_iommu_init_fn(struct device_node *np)
 		return ret;
 	}
 
-	of_iommu_set_ops(np, &mtk_iommu_ops);
+	iommu_register_instance(&np->fwnode, &mtk_iommu_ops);
 	return 0;
 }
 
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index 0f57ddc..d7f480a 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -127,7 +127,7 @@ static const struct iommu_ops
 			   "iommu-map-mask", &iommu_spec.np, iommu_spec.args))
 		return NULL;
 
-	ops = of_iommu_get_ops(iommu_spec.np);
+	ops = iommu_get_instance(&iommu_spec.np->fwnode);
 	if (!ops || !ops->of_xlate ||
 	    iommu_fwspec_init(&pdev->dev, &iommu_spec.np->fwnode, ops) ||
 	    ops->of_xlate(&pdev->dev, &iommu_spec))
@@ -157,7 +157,7 @@ const struct iommu_ops *of_iommu_configure(struct device *dev,
 					   "#iommu-cells", idx,
 					   &iommu_spec)) {
 		np = iommu_spec.np;
-		ops = of_iommu_get_ops(np);
+		ops = iommu_get_instance(&np->fwnode);
 
 		if (!ops || !ops->of_xlate ||
 		    iommu_fwspec_init(dev, &np->fwnode, ops) ||
diff --git a/include/linux/of_iommu.h b/include/linux/of_iommu.h
index 6a7fc50..13394ac 100644
--- a/include/linux/of_iommu.h
+++ b/include/linux/of_iommu.h
@@ -31,17 +31,6 @@ static inline const struct iommu_ops *of_iommu_configure(struct device *dev,
 
 #endif	/* CONFIG_OF_IOMMU */
 
-static inline void of_iommu_set_ops(struct device_node *np,
-				    const struct iommu_ops *ops)
-{
-	iommu_register_instance(&np->fwnode, ops);
-}
-
-static inline const struct iommu_ops *of_iommu_get_ops(struct device_node *np)
-{
-	return iommu_get_instance(&np->fwnode);
-}
-
 extern struct of_device_id __iommu_of_table;
 
 typedef int (*of_iommu_init_fn)(struct device_node *);
-- 
2.10.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* RE: [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface
  2017-01-03 17:34 ` [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface Lorenzo Pieralisi
@ 2017-01-04  8:00   ` Sricharan
  2017-01-04 15:11   ` Robin Murphy
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Sricharan @ 2017-01-04  8:00 UTC (permalink / raw)
  To: 'Lorenzo Pieralisi', iommu
  Cc: 'Joerg Roedel', 'Will Deacon',
	linux-kernel, 'Matthias Brugger', 'Robin Murphy',
	linux-arm-kernel, 'Marek Szyprowski'

Hi Lorenzo,

>With the introduction of the new iommu_{register/get}_instance()
>interface in commit e4f10ffe4c9b ("iommu: Make of_iommu_set/get_ops() DT
>agnostic") (based on struct fwnode_handle as look-up token, so firmware
>agnostic) to register IOMMU instances with the core IOMMU layer there is
>no reason to keep the old OF based interface around any longer.
>
>Convert all the IOMMU drivers (and OF IOMMU core code) that rely on the
>of_iommu_{set/get}_ops() to the new kernel interface to register/retrieve
>IOMMU instances and remove the of_iommu_{set/get}_ops() remaining glue
>code in order to complete the interface rework.
>
>Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>Cc: Matthias Brugger <matthias.bgg@gmail.com>
>Cc: Will Deacon <will.deacon@arm.com>
>Cc: Robin Murphy <robin.murphy@arm.com>
>Cc: Joerg Roedel <joro@8bytes.org>
>Cc: Marek Szyprowski <m.szyprowski@samsung.com>
>---
>Exynos, msm and mtk code compile tested only owing to lack of
>test platforms, I would appreciate some help in testing this
>patch on those platforms before merging it even if it is just
>a simple interface conversion.
>

For msm,
Tested-by: Sricharan R <sricharan@codeaurora.org>

Regards,
 Sricharan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface
  2017-01-03 17:34 ` [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface Lorenzo Pieralisi
  2017-01-04  8:00   ` Sricharan
@ 2017-01-04 15:11   ` Robin Murphy
  2017-01-06  6:46     ` Yong Wu
  2017-01-04 15:19   ` Will Deacon
  2017-01-09  8:11   ` Marek Szyprowski
  3 siblings, 1 reply; 6+ messages in thread
From: Robin Murphy @ 2017-01-04 15:11 UTC (permalink / raw)
  To: Lorenzo Pieralisi, iommu
  Cc: linux-arm-kernel, linux-kernel, Matthias Brugger, Will Deacon,
	Joerg Roedel, Marek Szyprowski, yong.wu

[+Yong Wu for mtk_iommu]

On 03/01/17 17:34, Lorenzo Pieralisi wrote:
> With the introduction of the new iommu_{register/get}_instance()
> interface in commit e4f10ffe4c9b ("iommu: Make of_iommu_set/get_ops() DT
> agnostic") (based on struct fwnode_handle as look-up token, so firmware
> agnostic) to register IOMMU instances with the core IOMMU layer there is
> no reason to keep the old OF based interface around any longer.
> 
> Convert all the IOMMU drivers (and OF IOMMU core code) that rely on the
> of_iommu_{set/get}_ops() to the new kernel interface to register/retrieve
> IOMMU instances and remove the of_iommu_{set/get}_ops() remaining glue
> code in order to complete the interface rework.

Reviewed-by: Robin Murphy <robin.murphy@arm.com>

Looking at before-and-after disassemblies, of_iommu.o is binary
identical, and exynos-iommu.o differs only in the use of dev->fwnode
rather than &dev->of_node->fwnode (and is binary identical if I hack it
back to the latter). I'm not sure why the (GCC 6.2) codegen for
mtk_iommu.o changes quite so much when merely replacing a callsite with
the contents of its static inline callee, but it does :/

Robin.

> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Joerg Roedel <joro@8bytes.org>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
> Exynos, msm and mtk code compile tested only owing to lack of
> test platforms, I would appreciate some help in testing this
> patch on those platforms before merging it even if it is just
> a simple interface conversion.
> 
> Thanks,
> Lorenzo
> 
>  drivers/iommu/exynos-iommu.c |  2 +-
>  drivers/iommu/msm_iommu.c    |  2 +-
>  drivers/iommu/mtk_iommu.c    |  2 +-
>  drivers/iommu/of_iommu.c     |  4 ++--
>  include/linux/of_iommu.h     | 11 -----------
>  5 files changed, 5 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
> index 57ba0d3..b79e4c4 100644
> --- a/drivers/iommu/exynos-iommu.c
> +++ b/drivers/iommu/exynos-iommu.c
> @@ -628,7 +628,7 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
>  
>  	pm_runtime_enable(dev);
>  
> -	of_iommu_set_ops(dev->of_node, &exynos_iommu_ops);
> +	iommu_register_instance(dev->fwnode, &exynos_iommu_ops);
>  
>  	return 0;
>  }
> diff --git a/drivers/iommu/msm_iommu.c b/drivers/iommu/msm_iommu.c
> index b09692b..9cd3cee 100644
> --- a/drivers/iommu/msm_iommu.c
> +++ b/drivers/iommu/msm_iommu.c
> @@ -737,7 +737,7 @@ static int msm_iommu_probe(struct platform_device *pdev)
>  	}
>  
>  	list_add(&iommu->dev_node, &qcom_iommu_devices);
> -	of_iommu_set_ops(pdev->dev.of_node, &msm_iommu_ops);
> +	iommu_register_instance(pdev->dev.fwnode, &msm_iommu_ops);
>  
>  	pr_info("device mapped at %p, irq %d with %d ctx banks\n",
>  		iommu->base, iommu->irq, iommu->ncb);
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 1479c76..0596ab2 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -655,7 +655,7 @@ static int mtk_iommu_init_fn(struct device_node *np)
>  		return ret;
>  	}
>  
> -	of_iommu_set_ops(np, &mtk_iommu_ops);
> +	iommu_register_instance(&np->fwnode, &mtk_iommu_ops);
>  	return 0;
>  }
>  
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index 0f57ddc..d7f480a 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -127,7 +127,7 @@ static const struct iommu_ops
>  			   "iommu-map-mask", &iommu_spec.np, iommu_spec.args))
>  		return NULL;
>  
> -	ops = of_iommu_get_ops(iommu_spec.np);
> +	ops = iommu_get_instance(&iommu_spec.np->fwnode);
>  	if (!ops || !ops->of_xlate ||
>  	    iommu_fwspec_init(&pdev->dev, &iommu_spec.np->fwnode, ops) ||
>  	    ops->of_xlate(&pdev->dev, &iommu_spec))
> @@ -157,7 +157,7 @@ const struct iommu_ops *of_iommu_configure(struct device *dev,
>  					   "#iommu-cells", idx,
>  					   &iommu_spec)) {
>  		np = iommu_spec.np;
> -		ops = of_iommu_get_ops(np);
> +		ops = iommu_get_instance(&np->fwnode);
>  
>  		if (!ops || !ops->of_xlate ||
>  		    iommu_fwspec_init(dev, &np->fwnode, ops) ||
> diff --git a/include/linux/of_iommu.h b/include/linux/of_iommu.h
> index 6a7fc50..13394ac 100644
> --- a/include/linux/of_iommu.h
> +++ b/include/linux/of_iommu.h
> @@ -31,17 +31,6 @@ static inline const struct iommu_ops *of_iommu_configure(struct device *dev,
>  
>  #endif	/* CONFIG_OF_IOMMU */
>  
> -static inline void of_iommu_set_ops(struct device_node *np,
> -				    const struct iommu_ops *ops)
> -{
> -	iommu_register_instance(&np->fwnode, ops);
> -}
> -
> -static inline const struct iommu_ops *of_iommu_get_ops(struct device_node *np)
> -{
> -	return iommu_get_instance(&np->fwnode);
> -}
> -
>  extern struct of_device_id __iommu_of_table;
>  
>  typedef int (*of_iommu_init_fn)(struct device_node *);
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface
  2017-01-03 17:34 ` [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface Lorenzo Pieralisi
  2017-01-04  8:00   ` Sricharan
  2017-01-04 15:11   ` Robin Murphy
@ 2017-01-04 15:19   ` Will Deacon
  2017-01-09  8:11   ` Marek Szyprowski
  3 siblings, 0 replies; 6+ messages in thread
From: Will Deacon @ 2017-01-04 15:19 UTC (permalink / raw)
  To: Lorenzo Pieralisi
  Cc: iommu, linux-arm-kernel, linux-kernel, Matthias Brugger,
	Robin Murphy, Joerg Roedel, Marek Szyprowski

On Tue, Jan 03, 2017 at 05:34:56PM +0000, Lorenzo Pieralisi wrote:
> With the introduction of the new iommu_{register/get}_instance()
> interface in commit e4f10ffe4c9b ("iommu: Make of_iommu_set/get_ops() DT
> agnostic") (based on struct fwnode_handle as look-up token, so firmware
> agnostic) to register IOMMU instances with the core IOMMU layer there is
> no reason to keep the old OF based interface around any longer.
> 
> Convert all the IOMMU drivers (and OF IOMMU core code) that rely on the
> of_iommu_{set/get}_ops() to the new kernel interface to register/retrieve
> IOMMU instances and remove the of_iommu_{set/get}_ops() remaining glue
> code in order to complete the interface rework.
> 
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Joerg Roedel <joro@8bytes.org>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
> Exynos, msm and mtk code compile tested only owing to lack of
> test platforms, I would appreciate some help in testing this
> patch on those platforms before merging it even if it is just
> a simple interface conversion.
> 
> Thanks,
> Lorenzo
> 
>  drivers/iommu/exynos-iommu.c |  2 +-
>  drivers/iommu/msm_iommu.c    |  2 +-
>  drivers/iommu/mtk_iommu.c    |  2 +-
>  drivers/iommu/of_iommu.c     |  4 ++--
>  include/linux/of_iommu.h     | 11 -----------
>  5 files changed, 5 insertions(+), 16 deletions(-)

Thanks for following up with this cleanup, Lorenzo. I'll queue it locally,
and send it to Joerg for 4.11 if he doesn't apply it manually before then.

Will

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface
  2017-01-04 15:11   ` Robin Murphy
@ 2017-01-06  6:46     ` Yong Wu
  0 siblings, 0 replies; 6+ messages in thread
From: Yong Wu @ 2017-01-06  6:46 UTC (permalink / raw)
  To: Lorenzo Pieralisi, Robin Murphy
  Cc: iommu, linux-arm-kernel, linux-kernel, Matthias Brugger,
	Will Deacon, Joerg Roedel, Marek Szyprowski

On Wed, 2017-01-04 at 15:11 +0000, Robin Murphy wrote:
> [+Yong Wu for mtk_iommu]
> 
> On 03/01/17 17:34, Lorenzo Pieralisi wrote:
> > With the introduction of the new iommu_{register/get}_instance()
> > interface in commit e4f10ffe4c9b ("iommu: Make of_iommu_set/get_ops() DT
> > agnostic") (based on struct fwnode_handle as look-up token, so firmware
> > agnostic) to register IOMMU instances with the core IOMMU layer there is
> > no reason to keep the old OF based interface around any longer.
> > 
> > Convert all the IOMMU drivers (and OF IOMMU core code) that rely on the
> > of_iommu_{set/get}_ops() to the new kernel interface to register/retrieve
> > IOMMU instances and remove the of_iommu_{set/get}_ops() remaining glue
> > code in order to complete the interface rework.
> 
> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
> 
> Looking at before-and-after disassemblies, of_iommu.o is binary
> identical, and exynos-iommu.o differs only in the use of dev->fwnode
> rather than &dev->of_node->fwnode (and is binary identical if I hack it
> back to the latter). I'm not sure why the (GCC 6.2) codegen for
> mtk_iommu.o changes quite so much when merely replacing a callsite with
> the contents of its static inline callee, but it does :/
> 
> Robin.
> 

For MTK IOMMU,

Tested-by: Yong Wu <yong.wu@mediatek.com>

Thanks.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface
  2017-01-03 17:34 ` [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface Lorenzo Pieralisi
                     ` (2 preceding siblings ...)
  2017-01-04 15:19   ` Will Deacon
@ 2017-01-09  8:11   ` Marek Szyprowski
  3 siblings, 0 replies; 6+ messages in thread
From: Marek Szyprowski @ 2017-01-09  8:11 UTC (permalink / raw)
  To: Lorenzo Pieralisi, iommu
  Cc: linux-arm-kernel, linux-kernel, Matthias Brugger, Will Deacon,
	Robin Murphy, Joerg Roedel

Hi Lorenzo,

On 2017-01-03 18:34, Lorenzo Pieralisi wrote:
> With the introduction of the new iommu_{register/get}_instance()
> interface in commit e4f10ffe4c9b ("iommu: Make of_iommu_set/get_ops() DT
> agnostic") (based on struct fwnode_handle as look-up token, so firmware
> agnostic) to register IOMMU instances with the core IOMMU layer there is
> no reason to keep the old OF based interface around any longer.
>
> Convert all the IOMMU drivers (and OF IOMMU core code) that rely on the
> of_iommu_{set/get}_ops() to the new kernel interface to register/retrieve
> IOMMU instances and remove the of_iommu_{set/get}_ops() remaining glue
> code in order to complete the interface rework.
>
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Joerg Roedel <joro@8bytes.org>
> Cc: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
> Exynos, msm and mtk code compile tested only owing to lack of
> test platforms, I would appreciate some help in testing this
> patch on those platforms before merging it even if it is just
> a simple interface conversion.

Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>

>
> Thanks,
> Lorenzo
>
>   drivers/iommu/exynos-iommu.c |  2 +-
>   drivers/iommu/msm_iommu.c    |  2 +-
>   drivers/iommu/mtk_iommu.c    |  2 +-
>   drivers/iommu/of_iommu.c     |  4 ++--
>   include/linux/of_iommu.h     | 11 -----------
>   5 files changed, 5 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
> index 57ba0d3..b79e4c4 100644
> --- a/drivers/iommu/exynos-iommu.c
> +++ b/drivers/iommu/exynos-iommu.c
> @@ -628,7 +628,7 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
>   
>   	pm_runtime_enable(dev);
>   
> -	of_iommu_set_ops(dev->of_node, &exynos_iommu_ops);
> +	iommu_register_instance(dev->fwnode, &exynos_iommu_ops);
>   
>   	return 0;
>   }
> diff --git a/drivers/iommu/msm_iommu.c b/drivers/iommu/msm_iommu.c
> index b09692b..9cd3cee 100644
> --- a/drivers/iommu/msm_iommu.c
> +++ b/drivers/iommu/msm_iommu.c
> @@ -737,7 +737,7 @@ static int msm_iommu_probe(struct platform_device *pdev)
>   	}
>   
>   	list_add(&iommu->dev_node, &qcom_iommu_devices);
> -	of_iommu_set_ops(pdev->dev.of_node, &msm_iommu_ops);
> +	iommu_register_instance(pdev->dev.fwnode, &msm_iommu_ops);
>   
>   	pr_info("device mapped at %p, irq %d with %d ctx banks\n",
>   		iommu->base, iommu->irq, iommu->ncb);
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 1479c76..0596ab2 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -655,7 +655,7 @@ static int mtk_iommu_init_fn(struct device_node *np)
>   		return ret;
>   	}
>   
> -	of_iommu_set_ops(np, &mtk_iommu_ops);
> +	iommu_register_instance(&np->fwnode, &mtk_iommu_ops);
>   	return 0;
>   }
>   
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index 0f57ddc..d7f480a 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -127,7 +127,7 @@ static const struct iommu_ops
>   			   "iommu-map-mask", &iommu_spec.np, iommu_spec.args))
>   		return NULL;
>   
> -	ops = of_iommu_get_ops(iommu_spec.np);
> +	ops = iommu_get_instance(&iommu_spec.np->fwnode);
>   	if (!ops || !ops->of_xlate ||
>   	    iommu_fwspec_init(&pdev->dev, &iommu_spec.np->fwnode, ops) ||
>   	    ops->of_xlate(&pdev->dev, &iommu_spec))
> @@ -157,7 +157,7 @@ const struct iommu_ops *of_iommu_configure(struct device *dev,
>   					   "#iommu-cells", idx,
>   					   &iommu_spec)) {
>   		np = iommu_spec.np;
> -		ops = of_iommu_get_ops(np);
> +		ops = iommu_get_instance(&np->fwnode);
>   
>   		if (!ops || !ops->of_xlate ||
>   		    iommu_fwspec_init(dev, &np->fwnode, ops) ||
> diff --git a/include/linux/of_iommu.h b/include/linux/of_iommu.h
> index 6a7fc50..13394ac 100644
> --- a/include/linux/of_iommu.h
> +++ b/include/linux/of_iommu.h
> @@ -31,17 +31,6 @@ static inline const struct iommu_ops *of_iommu_configure(struct device *dev,
>   
>   #endif	/* CONFIG_OF_IOMMU */
>   
> -static inline void of_iommu_set_ops(struct device_node *np,
> -				    const struct iommu_ops *ops)
> -{
> -	iommu_register_instance(&np->fwnode, ops);
> -}
> -
> -static inline const struct iommu_ops *of_iommu_get_ops(struct device_node *np)
> -{
> -	return iommu_get_instance(&np->fwnode);
> -}
> -
>   extern struct of_device_id __iommu_of_table;
>   
>   typedef int (*of_iommu_init_fn)(struct device_node *);

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-01-09  8:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20170103173514epcas4p42d343054cc7117c7299ca7bfad0015af@epcas4p4.samsung.com>
2017-01-03 17:34 ` [PATCH] iommu: Drop the of_iommu_{set/get}_ops() interface Lorenzo Pieralisi
2017-01-04  8:00   ` Sricharan
2017-01-04 15:11   ` Robin Murphy
2017-01-06  6:46     ` Yong Wu
2017-01-04 15:19   ` Will Deacon
2017-01-09  8:11   ` Marek Szyprowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).