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:
Родитель
b16c0170b5
Коммит
d2c302b6e8
|
@ -276,6 +276,8 @@ struct sysmmu_drvdata {
|
||||||
struct list_head owner_node; /* node for owner controllers list */
|
struct list_head owner_node; /* node for owner controllers list */
|
||||||
phys_addr_t pgtable; /* assigned page table structure */
|
phys_addr_t pgtable; /* assigned page table structure */
|
||||||
unsigned int version; /* our version */
|
unsigned int version; /* our version */
|
||||||
|
|
||||||
|
struct iommu_device iommu; /* IOMMU core handle */
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct exynos_iommu_domain *to_exynos_domain(struct iommu_domain *dom)
|
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;
|
data->sysmmu = dev;
|
||||||
spin_lock_init(&data->lock);
|
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);
|
platform_set_drvdata(pdev, data);
|
||||||
|
|
||||||
__sysmmu_get_version(data);
|
__sysmmu_get_version(data);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче