File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -276,6 +276,8 @@ struct sysmmu_drvdata {
276
276
struct list_head owner_node ; /* node for owner controllers list */
277
277
phys_addr_t pgtable ; /* assigned page table structure */
278
278
unsigned int version ; /* our version */
279
+
280
+ struct iommu_device iommu ; /* IOMMU core handle */
279
281
};
280
282
281
283
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)
611
613
data -> sysmmu = dev ;
612
614
spin_lock_init (& data -> lock );
613
615
616
+ ret = iommu_device_sysfs_add (& data -> iommu , & pdev -> dev , NULL ,
617
+ dev_name (data -> sysmmu ));
618
+ if (ret )
619
+ return ret ;
620
+
621
+ iommu_device_set_ops (& data -> iommu , & exynos_iommu_ops );
622
+ iommu_device_set_fwnode (& data -> iommu , & dev -> of_node -> fwnode );
623
+
624
+ ret = iommu_device_register (& data -> iommu );
625
+ if (ret )
626
+ return ret ;
627
+
614
628
platform_set_drvdata (pdev , data );
615
629
616
630
__sysmmu_get_version (data );
You can’t perform that action at this time.
0 commit comments