iommu/sun50i: Convert to generic_single_device_group()
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 22 Aug 2023 16:15:58 +0000 (13:15 -0300)
committerJoerg Roedel <jroedel@suse.de>
Mon, 25 Sep 2023 09:47:59 +0000 (11:47 +0200)
Use the new helper.

Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://lore.kernel.org/r/3-v1-c869a95191f2+5e8-iommu_single_grp_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/sun50i-iommu.c

index d6629b0a9389f4b12d0c16867314b4e9ddf2251d..000aa2268099364719ed13326935ec05a07f2366 100644 (file)
@@ -107,7 +107,6 @@ struct sun50i_iommu {
        struct clk *clk;
 
        struct iommu_domain *domain;
-       struct iommu_group *group;
        struct kmem_cache *pt_pool;
 };
 
@@ -815,13 +814,6 @@ static struct iommu_device *sun50i_iommu_probe_device(struct device *dev)
        return &iommu->iommu;
 }
 
-static struct iommu_group *sun50i_iommu_device_group(struct device *dev)
-{
-       struct sun50i_iommu *iommu = sun50i_iommu_from_dev(dev);
-
-       return iommu_group_ref_get(iommu->group);
-}
-
 static int sun50i_iommu_of_xlate(struct device *dev,
                                 struct of_phandle_args *args)
 {
@@ -836,7 +828,7 @@ static int sun50i_iommu_of_xlate(struct device *dev,
 static const struct iommu_ops sun50i_iommu_ops = {
        .identity_domain = &sun50i_iommu_identity_domain,
        .pgsize_bitmap  = SZ_4K,
-       .device_group   = sun50i_iommu_device_group,
+       .device_group   = generic_single_device_group,
        .domain_alloc_paging = sun50i_iommu_domain_alloc_paging,
        .of_xlate       = sun50i_iommu_of_xlate,
        .probe_device   = sun50i_iommu_probe_device,
@@ -1004,42 +996,36 @@ static int sun50i_iommu_probe(struct platform_device *pdev)
        if (!iommu->pt_pool)
                return -ENOMEM;
 
-       iommu->group = iommu_group_alloc();
-       if (IS_ERR(iommu->group)) {
-               ret = PTR_ERR(iommu->group);
-               goto err_free_cache;
-       }
-
        iommu->base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(iommu->base)) {
                ret = PTR_ERR(iommu->base);
-               goto err_free_group;
+               goto err_free_cache;
        }
 
        irq = platform_get_irq(pdev, 0);
        if (irq < 0) {
                ret = irq;
-               goto err_free_group;
+               goto err_free_cache;
        }
 
        iommu->clk = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(iommu->clk)) {
                dev_err(&pdev->dev, "Couldn't get our clock.\n");
                ret = PTR_ERR(iommu->clk);
-               goto err_free_group;
+               goto err_free_cache;
        }
 
        iommu->reset = devm_reset_control_get(&pdev->dev, NULL);
        if (IS_ERR(iommu->reset)) {
                dev_err(&pdev->dev, "Couldn't get our reset line.\n");
                ret = PTR_ERR(iommu->reset);
-               goto err_free_group;
+               goto err_free_cache;
        }
 
        ret = iommu_device_sysfs_add(&iommu->iommu, &pdev->dev,
                                     NULL, dev_name(&pdev->dev));
        if (ret)
-               goto err_free_group;
+               goto err_free_cache;
 
        ret = iommu_device_register(&iommu->iommu, &sun50i_iommu_ops, &pdev->dev);
        if (ret)
@@ -1058,9 +1044,6 @@ err_unregister:
 err_remove_sysfs:
        iommu_device_sysfs_remove(&iommu->iommu);
 
-err_free_group:
-       iommu_group_put(iommu->group);
-
 err_free_cache:
        kmem_cache_destroy(iommu->pt_pool);