iommu/exynos: Make use of iommu_device_register interface
Register Exynos IOMMUs to the IOMMU core and make them visible in sysfs. This patch does not add the links between IOMMUs and translated devices yet. Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Acked-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
b16c0170b5
commit
d2c302b6e8
|
@ -276,6 +276,8 @@ struct sysmmu_drvdata {
|
|||
struct list_head owner_node; /* node for owner controllers list */
|
||||
phys_addr_t pgtable; /* assigned page table structure */
|
||||
unsigned int version; /* our version */
|
||||
|
||||
struct iommu_device iommu; /* IOMMU core handle */
|
||||
};
|
||||
|
||||
static struct exynos_iommu_domain *to_exynos_domain(struct iommu_domain *dom)
|
||||
|
@ -611,6 +613,18 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
|
|||
data->sysmmu = dev;
|
||||
spin_lock_init(&data->lock);
|
||||
|
||||
ret = iommu_device_sysfs_add(&data->iommu, &pdev->dev, NULL,
|
||||
dev_name(data->sysmmu));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
iommu_device_set_ops(&data->iommu, &exynos_iommu_ops);
|
||||
iommu_device_set_fwnode(&data->iommu, &dev->of_node->fwnode);
|
||||
|
||||
ret = iommu_device_register(&data->iommu);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
platform_set_drvdata(pdev, data);
|
||||
|
||||
__sysmmu_get_version(data);
|
||||
|
|
Loading…
Reference in New Issue