iommu: Drop the of_iommu_{set/get}_ops() interface
With the introduction of the new iommu_{register/get}_instance()
interface in commit e4f10ffe4c
("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.
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Tested-by: Sricharan R <sricharan@codeaurora.org>
Tested-by: Yong Wu <yong.wu@mediatek.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
692c4e422d
commit
65e251a463
|
@ -628,7 +628,7 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
pm_runtime_enable(dev);
|
pm_runtime_enable(dev);
|
||||||
|
|
||||||
of_iommu_set_ops(dev->of_node, &exynos_iommu_ops);
|
iommu_register_instance(dev->fwnode, &exynos_iommu_ops);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -737,7 +737,7 @@ static int msm_iommu_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
list_add(&iommu->dev_node, &qcom_iommu_devices);
|
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",
|
pr_info("device mapped at %p, irq %d with %d ctx banks\n",
|
||||||
iommu->base, iommu->irq, iommu->ncb);
|
iommu->base, iommu->irq, iommu->ncb);
|
||||||
|
|
|
@ -655,7 +655,7 @@ static int mtk_iommu_init_fn(struct device_node *np)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
of_iommu_set_ops(np, &mtk_iommu_ops);
|
iommu_register_instance(&np->fwnode, &mtk_iommu_ops);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ static const struct iommu_ops
|
||||||
"iommu-map-mask", &iommu_spec.np, iommu_spec.args))
|
"iommu-map-mask", &iommu_spec.np, iommu_spec.args))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ops = of_iommu_get_ops(iommu_spec.np);
|
ops = iommu_get_instance(&iommu_spec.np->fwnode);
|
||||||
if (!ops || !ops->of_xlate ||
|
if (!ops || !ops->of_xlate ||
|
||||||
iommu_fwspec_init(&pdev->dev, &iommu_spec.np->fwnode, ops) ||
|
iommu_fwspec_init(&pdev->dev, &iommu_spec.np->fwnode, ops) ||
|
||||||
ops->of_xlate(&pdev->dev, &iommu_spec))
|
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-cells", idx,
|
||||||
&iommu_spec)) {
|
&iommu_spec)) {
|
||||||
np = iommu_spec.np;
|
np = iommu_spec.np;
|
||||||
ops = of_iommu_get_ops(np);
|
ops = iommu_get_instance(&np->fwnode);
|
||||||
|
|
||||||
if (!ops || !ops->of_xlate ||
|
if (!ops || !ops->of_xlate ||
|
||||||
iommu_fwspec_init(dev, &np->fwnode, ops) ||
|
iommu_fwspec_init(dev, &np->fwnode, ops) ||
|
||||||
|
|
|
@ -31,17 +31,6 @@ static inline const struct iommu_ops *of_iommu_configure(struct device *dev,
|
||||||
|
|
||||||
#endif /* CONFIG_OF_IOMMU */
|
#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;
|
extern struct of_device_id __iommu_of_table;
|
||||||
|
|
||||||
typedef int (*of_iommu_init_fn)(struct device_node *);
|
typedef int (*of_iommu_init_fn)(struct device_node *);
|
||||||
|
|
Loading…
Reference in New Issue