| From c736bdac71f78a4de06b667febbe7bb51efbd027 Mon Sep 17 00:00:00 2001 |
| From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Date: Fri, 13 Oct 2017 00:08:14 +0300 |
| Subject: [PATCH 0087/1795] gpio-rcar: use devm_ioremap_resource() |
| |
| Using devm_ioremap_resource() has several advantages over devm_ioremap(): |
| - it checks the passed resource's validity; |
| - it calls devm_request_mem_region() to check for the resource overlap; |
| - it prints an error message in case of error. |
| |
| We can call devm_ioremap_resource() instead of devm_ioremap_nocache() |
| as ioremap() and ioremap_nocache() are implemented identically on ARM. |
| Doing this saves 2 LoCs and 80 bytes (AArch64 gcc 4.8.5). |
| |
| Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| (cherry picked from commit 5a24d4b601561da08a70c065d4630bd9fadb37e8) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| --- |
| drivers/gpio/gpio-rcar.c | 14 ++++++-------- |
| 1 file changed, 6 insertions(+), 8 deletions(-) |
| |
| diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c |
| index 3d0a2a7dd631..2cf5f458928b 100644 |
| --- a/drivers/gpio/gpio-rcar.c |
| +++ b/drivers/gpio/gpio-rcar.c |
| @@ -452,19 +452,17 @@ static int gpio_rcar_probe(struct platform_device *pdev) |
| |
| pm_runtime_enable(dev); |
| |
| - io = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
| - |
| - if (!io || !irq) { |
| - dev_err(dev, "missing IRQ or IOMEM\n"); |
| + if (!irq) { |
| + dev_err(dev, "missing IRQ\n"); |
| ret = -EINVAL; |
| goto err0; |
| } |
| |
| - p->base = devm_ioremap_nocache(dev, io->start, resource_size(io)); |
| - if (!p->base) { |
| - dev_err(dev, "failed to remap I/O memory\n"); |
| - ret = -ENXIO; |
| + io = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| + p->base = devm_ioremap_resource(dev, io); |
| + if (IS_ERR(p->base)) { |
| + ret = PTR_ERR(p->base); |
| goto err0; |
| } |
| |
| -- |
| 2.19.0 |
| |