2023-07-06 12:45:09

by 李扬韬

[permalink] [raw]
Subject: [PATCH 6/8] pata: ixp4xx: Use devm_platform_get_and_ioremap_resource()

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: Yangtao Li <[email protected]>
---
drivers/ata/pata_ixp4xx_cf.c | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)

diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c
index b1daa4d3fcd9..246bb4f8f1f7 100644
--- a/drivers/ata/pata_ixp4xx_cf.c
+++ b/drivers/ata/pata_ixp4xx_cf.c
@@ -242,12 +242,6 @@ static int ixp4xx_pata_probe(struct platform_device *pdev)
int ret;
int irq;

- cmd = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- ctl = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-
- if (!cmd || !ctl)
- return -EINVAL;
-
ixpp = devm_kzalloc(dev, sizeof(*ixpp), GFP_KERNEL);
if (!ixpp)
return -ENOMEM;
@@ -271,18 +265,18 @@ static int ixp4xx_pata_probe(struct platform_device *pdev)
if (ret)
return ret;

- ixpp->cmd = devm_ioremap_resource(dev, cmd);
- ixpp->ctl = devm_ioremap_resource(dev, ctl);
- if (IS_ERR(ixpp->cmd) || IS_ERR(ixpp->ctl))
- return -ENOMEM;
+ ixpp->cmd = devm_platform_get_and_ioremap_resource(pdev, 0, &cmd);
+ if (IS_ERR(ixpp->cmd))
+ return PTR_ERR(ixpp->cmd);
+
+ ixpp->ctl = devm_platform_get_and_ioremap_resource(pdev, 1, &ctl);
+ if (IS_ERR(ixpp->ctl))
+ return PTR_ERR(ixpp->ctl);

irq = platform_get_irq(pdev, 0);
- if (irq > 0)
- irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
- else if (irq < 0)
+ if (irq < 0)
return irq;
- else
- return -EINVAL;
+ irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);

/* Just one port to set up */
ixp4xx_setup_port(ixpp->host->ports[0], ixpp, cmd->start, ctl->start);
--
2.39.0



2023-07-06 23:51:19

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH 6/8] pata: ixp4xx: Use devm_platform_get_and_ioremap_resource()

On 7/6/23 21:42, Yangtao Li wrote:
> 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.

Patch title:

ata: pata_ixp4xx: ...

>
> Signed-off-by: Yangtao Li <[email protected]>
> ---
> drivers/ata/pata_ixp4xx_cf.c | 24 +++++++++---------------
> 1 file changed, 9 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c
> index b1daa4d3fcd9..246bb4f8f1f7 100644
> --- a/drivers/ata/pata_ixp4xx_cf.c
> +++ b/drivers/ata/pata_ixp4xx_cf.c
> @@ -242,12 +242,6 @@ static int ixp4xx_pata_probe(struct platform_device *pdev)
> int ret;
> int irq;
>
> - cmd = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - ctl = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> -
> - if (!cmd || !ctl)
> - return -EINVAL;
> -
> ixpp = devm_kzalloc(dev, sizeof(*ixpp), GFP_KERNEL);
> if (!ixpp)
> return -ENOMEM;
> @@ -271,18 +265,18 @@ static int ixp4xx_pata_probe(struct platform_device *pdev)
> if (ret)
> return ret;
>
> - ixpp->cmd = devm_ioremap_resource(dev, cmd);
> - ixpp->ctl = devm_ioremap_resource(dev, ctl);
> - if (IS_ERR(ixpp->cmd) || IS_ERR(ixpp->ctl))
> - return -ENOMEM;
> + ixpp->cmd = devm_platform_get_and_ioremap_resource(pdev, 0, &cmd);
> + if (IS_ERR(ixpp->cmd))
> + return PTR_ERR(ixpp->cmd);
> +
> + ixpp->ctl = devm_platform_get_and_ioremap_resource(pdev, 1, &ctl);
> + if (IS_ERR(ixpp->ctl))
> + return PTR_ERR(ixpp->ctl);
>
> irq = platform_get_irq(pdev, 0);
> - if (irq > 0)
> - irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
> - else if (irq < 0)
> + if (irq < 0)
> return irq;
> - else
> - return -EINVAL;
> + irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);

This change is OK but this should be a different patch.

>
> /* Just one port to set up */
> ixp4xx_setup_port(ixpp->host->ports[0], ixpp, cmd->start, ctl->start);

--
Damien Le Moal
Western Digital Research


2023-07-07 19:03:14

by Sergey Shtylyov

[permalink] [raw]
Subject: Re: [PATCH 6/8] pata: ixp4xx: Use devm_platform_get_and_ioremap_resource()

On 7/6/23 3:42 PM, Yangtao Li wrote:

> 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: Yangtao Li <[email protected]>
> ---
> drivers/ata/pata_ixp4xx_cf.c | 24 +++++++++---------------
> 1 file changed, 9 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c
> index b1daa4d3fcd9..246bb4f8f1f7 100644
> --- a/drivers/ata/pata_ixp4xx_cf.c
> +++ b/drivers/ata/pata_ixp4xx_cf.c
[...]
> @@ -271,18 +265,18 @@ static int ixp4xx_pata_probe(struct platform_device *pdev)
> if (ret)
> return ret;
>
> - ixpp->cmd = devm_ioremap_resource(dev, cmd);
> - ixpp->ctl = devm_ioremap_resource(dev, ctl);
> - if (IS_ERR(ixpp->cmd) || IS_ERR(ixpp->ctl))
> - return -ENOMEM;
> + ixpp->cmd = devm_platform_get_and_ioremap_resource(pdev, 0, &cmd);
> + if (IS_ERR(ixpp->cmd))
> + return PTR_ERR(ixpp->cmd);
> +
> + ixpp->ctl = devm_platform_get_and_ioremap_resource(pdev, 1, &ctl);
> + if (IS_ERR(ixpp->ctl))
> + return PTR_ERR(ixpp->ctl);

Looks good...

>
> irq = platform_get_irq(pdev, 0);
> - if (irq > 0)
> - irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
> - else if (irq < 0)
> + if (irq < 0)
> return irq;
> - else
> - return -EINVAL;
> + irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);

This change also looks good (but undescribed!), however it should be
done in a separate patch.
For the future, try to follow a simple rule: do one thing per patch.
Oh, and don't forget to describe everything you do in a patch...

[...]

MBR, Sergey