]> Pileus Git - ~andy/linux/blobdiff - drivers/gpio/gpio-mvebu.c
Merge branch 'sfc-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc
[~andy/linux] / drivers / gpio / gpio-mvebu.c
index 6819d63cb1673647e35821ce3feede298e3e56c7..7472182967ce15b44d964d184038fbca247724e8 100644 (file)
@@ -33,6 +33,7 @@
  *   interrupts.
  */
 
+#include <linux/err.h>
 #include <linux/module.h>
 #include <linux/gpio.h>
 #include <linux/irq.h>
@@ -544,11 +545,9 @@ 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");
-               return -ENOMEM;
-       }
+       mvchip->membase = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(mvchip->membase))
+               return PTR_ERR(mvchip->membase);
 
        /* The Armada XP has a second range of registers for the
         * per-CPU registers */
@@ -559,11 +558,10 @@ 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");
-                       return -ENOMEM;
-               }
+               mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev,
+                                                              res);
+               if (IS_ERR(mvchip->percpu_membase)) 
+                       return PTR_ERR(mvchip->percpu_membase);
        }
 
        /*