[PATCH 3/7] iommu/sun50i: Convert to generic_single_device_group()
Jernej Škrabec
jernej.skrabec at gmail.com
Wed Aug 23 12:22:15 PDT 2023
Dne torek, 22. avgust 2023 ob 18:15:58 CEST je Jason Gunthorpe napisal(a):
> Use the new helper.
>
> Signed-off-by: Jason Gunthorpe <jgg at nvidia.com>
Acked-by: Jernej Skrabec <jernej.skrabec at gmail.com>
Best regards,
Jernej
> ---
> drivers/iommu/sun50i-iommu.c | 29 ++++++-----------------------
> 1 file changed, 6 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c
> index 74c5cb93e90027..b8df655185ab2a 100644
> --- a/drivers/iommu/sun50i-iommu.c
> +++ b/drivers/iommu/sun50i-iommu.c
> @@ -107,7 +107,6 @@ struct sun50i_iommu {
> struct clk *clk;
>
> struct iommu_domain *domain;
> - struct iommu_group *group;
> struct kmem_cache *pt_pool;
> };
>
> @@ -808,13 +807,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)
> {
> @@ -828,7 +820,7 @@ static int sun50i_iommu_of_xlate(struct device *dev,
>
> static const struct iommu_ops sun50i_iommu_ops = {
> .pgsize_bitmap = SZ_4K,
> - .device_group = sun50i_iommu_device_group,
> + .device_group = generic_single_device_group,
> .domain_alloc = sun50i_iommu_domain_alloc,
> .of_xlate = sun50i_iommu_of_xlate,
> .probe_device = sun50i_iommu_probe_device,
> @@ -995,42 +987,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)
> @@ -1049,9 +1035,6 @@ static int sun50i_iommu_probe(struct platform_device
> *pdev) 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);
More information about the Linux-rockchip
mailing list