Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 641d0342 authored by Thierry Reding's avatar Thierry Reding Committed by Greg Kroah-Hartman
Browse files

gpio: Convert to devm_ioremap_resource()



Convert all uses of devm_request_and_ioremap() to the newly introduced
devm_ioremap_resource() which provides more consistent error handling.

devm_ioremap_resource() provides its own error messages so all explicit
error messages can be removed from the failure code paths.

Signed-off-by: default avatarThierry Reding <thierry.reding@avionic-design.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Linus Walleij <linus.walleij@linaro.org>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Tested-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Acked-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c7c9e1c3
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
 *   interrupts.
 */

#include <linux/err.h>
#include <linux/module.h>
#include <linux/gpio.h>
#include <linux/irq.h>
@@ -544,11 +545,10 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
	mvchip->chip.of_node = np;

	spin_lock_init(&mvchip->lock);
	mvchip->membase = devm_request_and_ioremap(&pdev->dev, res);
	if (! mvchip->membase) {
		dev_err(&pdev->dev, "Cannot ioremap\n");
	mvchip->membase = devm_ioremap_resource(&pdev->dev, res);
	if (IS_ERR(mvchip->membase)) {
		kfree(mvchip->chip.label);
		return -ENOMEM;
		return PTR_ERR(mvchip->membase);
	}

	/* The Armada XP has a second range of registers for the
@@ -561,11 +561,11 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
			return -ENODEV;
		}

		mvchip->percpu_membase = devm_request_and_ioremap(&pdev->dev, res);
		if (! mvchip->percpu_membase) {
			dev_err(&pdev->dev, "Cannot ioremap\n");
		mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev,
							       res);
		if (IS_ERR(mvchip->percpu_membase)) {
			kfree(mvchip->chip.label);
			return -ENOMEM;
			return PTR_ERR(mvchip->percpu_membase);
		}
	}

+6 −3
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
 * MA  02110-1301, USA.
 */

#include <linux/err.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
@@ -253,12 +254,14 @@ static int mxs_gpio_probe(struct platform_device *pdev)
			parent = of_get_parent(np);
			base = of_iomap(parent, 0);
			of_node_put(parent);
			if (!base)
				return -EADDRNOTAVAIL;
		} else {
			iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
			base = devm_request_and_ioremap(&pdev->dev, iores);
			base = devm_ioremap_resource(&pdev->dev, iores);
			if (IS_ERR(base))
				return PTR_ERR(base);
		}
		if (!base)
			return -EADDRNOTAVAIL;
	}
	port->base = base;

+3 −5
Original line number Diff line number Diff line
@@ -140,11 +140,9 @@ static int spics_gpio_probe(struct platform_device *pdev)
		return -ENOMEM;
	}

	spics->base = devm_request_and_ioremap(&pdev->dev, res);
	if (!spics->base) {
		dev_err(&pdev->dev, "request and ioremap fail\n");
		return -ENOMEM;
	}
	spics->base = devm_ioremap_resource(&pdev->dev, res);
	if (IS_ERR(spics->base))
		return PTR_ERR(spics->base);

	if (of_property_read_u32(np, "st-spics,peripcfg-reg",
				&spics->perip_cfg))
+4 −5
Original line number Diff line number Diff line
@@ -214,11 +214,10 @@ static int xway_stp_probe(struct platform_device *pdev)
	if (!chip)
		return -ENOMEM;

	chip->virt = devm_request_and_ioremap(&pdev->dev, res);
	if (!chip->virt) {
		dev_err(&pdev->dev, "failed to remap STP memory\n");
		return -ENOMEM;
	}
	chip->virt = devm_ioremap_resource(&pdev->dev, res);
	if (IS_ERR(chip->virt))
		return PTR_ERR(chip->virt);
	
	chip->gc.dev = &pdev->dev;
	chip->gc.label = "stp-xway";
	chip->gc.direction_output = xway_stp_dir_out;
+4 −5
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
 *
 */

#include <linux/err.h>
#include <linux/init.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
@@ -450,11 +451,9 @@ static int tegra_gpio_probe(struct platform_device *pdev)
		return -ENODEV;
	}

	regs = devm_request_and_ioremap(&pdev->dev, res);
	if (!regs) {
		dev_err(&pdev->dev, "Couldn't ioremap regs\n");
		return -ENODEV;
	}
	regs = devm_ioremap_resource(&pdev->dev, res);
	if (IS_ERR(regs))
		return PTR_ERR(regs);

	for (i = 0; i < tegra_gpio_bank_count; i++) {
		for (j = 0; j < 4; j++) {