Re: [PATCH 09/42] drivers: gpio: sprd: use devm_platform_ioremap_resource()

From: Baolin Wang
Date: Mon Mar 11 2019 - 22:39:01 EST


On Tue, 12 Mar 2019 at 02:55, Enrico Weigelt, metux IT consult
<info@xxxxxxxxx> wrote:
>
> Use the new helper that wraps the calls to platform_get_resource()
> and devm_ioremap_resource() together.
>
> Signed-off-by: Enrico Weigelt, metux IT consult <info@xxxxxxxxx>
> ---
> drivers/gpio/gpio-eic-sprd.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpio/gpio-eic-sprd.c b/drivers/gpio/gpio-eic-sprd.c
> index f0223ce..c12de87 100644
> --- a/drivers/gpio/gpio-eic-sprd.c
> +++ b/drivers/gpio/gpio-eic-sprd.c
> @@ -567,7 +567,6 @@ static int sprd_eic_probe(struct platform_device *pdev)
> const struct sprd_eic_variant_data *pdata;
> struct gpio_irq_chip *irq;
> struct sprd_eic *sprd_eic;
> - struct resource *res;
> int ret, i;
>
> pdata = of_device_get_match_data(&pdev->dev);
> @@ -596,13 +595,9 @@ static int sprd_eic_probe(struct platform_device *pdev)
> * have one bank EIC, thus base[1] and base[2] can be
> * optional.
> */
> - res = platform_get_resource(pdev, IORESOURCE_MEM, i);
> - if (!res)
> - continue;
> -
> - sprd_eic->base[i] = devm_ioremap_resource(&pdev->dev, res);
> + sprd_eic->base[i] = devm_platform_ioremap_resource(pdev, 0);

This is incorrect, since we can have multiple IO resources, but you
only get index 0.

> if (IS_ERR(sprd_eic->base[i]))
> - return PTR_ERR(sprd_eic->base[i]);
> + continue;
> }
>
> sprd_eic->chip.label = sprd_eic_label_name[sprd_eic->type];
> --
> 1.9.1
>
--
Baolin Wang
Best Regards