[PATCH] iommu/ipmmu-vmsa: use devm_platform_get_and_ioremap_resource()

ye.xingchen@zte.com.cn posted 1 patch 2 years, 7 months ago
drivers/iommu/ipmmu-vmsa.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH] iommu/ipmmu-vmsa: use devm_platform_get_and_ioremap_resource()
Posted by ye.xingchen@zte.com.cn 2 years, 7 months ago
From: Ye Xingchen <ye.xingchen@zte.com.cn>

Convert platform_get_resource(), devm_ioremap_resource() to a single
call to devm_platform_get_and_ioremap_resource(), as this is exactly
what this function does.

Signed-off-by: Ye Xingchen <ye.xingchen@zte.com.cn>
---
 drivers/iommu/ipmmu-vmsa.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
index bdf1a4e5eae0..aca7ca8b5543 100644
--- a/drivers/iommu/ipmmu-vmsa.c
+++ b/drivers/iommu/ipmmu-vmsa.c
@@ -967,7 +967,6 @@ static const struct of_device_id ipmmu_of_ids[] = {
 static int ipmmu_probe(struct platform_device *pdev)
 {
 	struct ipmmu_vmsa_device *mmu;
-	struct resource *res;
 	int irq;
 	int ret;

@@ -987,8 +986,7 @@ static int ipmmu_probe(struct platform_device *pdev)
 		return ret;

 	/* Map I/O memory and request IRQ. */
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	mmu->base = devm_ioremap_resource(&pdev->dev, res);
+	mmu->base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
 	if (IS_ERR(mmu->base))
 		return PTR_ERR(mmu->base);

-- 
2.25.1
Re: [PATCH] iommu/ipmmu-vmsa: use devm_platform_get_and_ioremap_resource()
Posted by Robin Murphy 2 years, 7 months ago
On 2023-02-08 08:05, ye.xingchen@zte.com.cn wrote:
> From: Ye Xingchen <ye.xingchen@zte.com.cn>
> 
> Convert platform_get_resource(), devm_ioremap_resource() to a single
> call to devm_platform_get_and_ioremap_resource(), as this is exactly
> what this function does.

Not exactly - it also returns the resource data to the caller, which is 
not needed here. Please use the regular devm_platform_ioremap_resource() 
in such cases - it's silly to call the overcomplicated function that 
does two things when you only ever need one of the things.

Thanks,
Robin.

> Signed-off-by: Ye Xingchen <ye.xingchen@zte.com.cn>
> ---
>   drivers/iommu/ipmmu-vmsa.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
> index bdf1a4e5eae0..aca7ca8b5543 100644
> --- a/drivers/iommu/ipmmu-vmsa.c
> +++ b/drivers/iommu/ipmmu-vmsa.c
> @@ -967,7 +967,6 @@ static const struct of_device_id ipmmu_of_ids[] = {
>   static int ipmmu_probe(struct platform_device *pdev)
>   {
>   	struct ipmmu_vmsa_device *mmu;
> -	struct resource *res;
>   	int irq;
>   	int ret;
> 
> @@ -987,8 +986,7 @@ static int ipmmu_probe(struct platform_device *pdev)
>   		return ret;
> 
>   	/* Map I/O memory and request IRQ. */
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	mmu->base = devm_ioremap_resource(&pdev->dev, res);
> +	mmu->base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
>   	if (IS_ERR(mmu->base))
>   		return PTR_ERR(mmu->base);
>