i2c: Convert to devm_ioremap_resource()
authorThierry Reding <thierry.reding@avionic-design.de>
Mon, 21 Jan 2013 10:09:03 +0000 (11:09 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Jan 2013 21:33:23 +0000 (13:33 -0800)
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: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/i2c/busses/i2c-at91.c
drivers/i2c/busses/i2c-imx.c
drivers/i2c/busses/i2c-ocores.c
drivers/i2c/busses/i2c-omap.c
drivers/i2c/busses/i2c-rcar.c
drivers/i2c/busses/i2c-s3c2410.c
drivers/i2c/busses/i2c-sirf.c
drivers/i2c/busses/i2c-stu300.c
drivers/i2c/busses/i2c-tegra.c
drivers/i2c/busses/i2c-xlr.c

index 2bfc04d0a1b16b4eae2b3bc112218addfb6c2bf9..ebc2241546952b34598fdb4fc0ddbd0e99171e01 100644 (file)
@@ -723,9 +723,9 @@ static int at91_twi_probe(struct platform_device *pdev)
        if (!dev->pdata)
                return -ENODEV;
 
-       dev->base = devm_request_and_ioremap(&pdev->dev, mem);
-       if (!dev->base)
-               return -EBUSY;
+       dev->base = devm_ioremap_resource(&pdev->dev, mem);
+       if (IS_ERR(dev->base))
+               return PTR_ERR(dev->base);
 
        dev->irq = platform_get_irq(pdev, 0);
        if (dev->irq < 0)
index b9734747d61080ffa16be81eb7c996f5a163bece..a71ece63e917d2c7434092207ce6ca8786d7b8d2 100644 (file)
@@ -511,9 +511,9 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
                return -ENOENT;
        }
 
-       base = devm_request_and_ioremap(&pdev->dev, res);
-       if (!base)
-               return -EBUSY;
+       base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(base))
+               return PTR_ERR(base);
 
        i2c_imx = devm_kzalloc(&pdev->dev, sizeof(struct imx_i2c_struct),
                                GFP_KERNEL);
index a873d0ad1acbc0b46fe172357052afe0fdce43cb..a337d08a392db520eaee71d1713af9c5ad3f1de0 100644 (file)
@@ -12,6 +12,7 @@
  * kind, whether express or implied.
  */
 
+#include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
@@ -364,9 +365,9 @@ static int ocores_i2c_probe(struct platform_device *pdev)
        if (!i2c)
                return -ENOMEM;
 
-       i2c->base = devm_request_and_ioremap(&pdev->dev, res);
-       if (!i2c->base)
-               return -EADDRNOTAVAIL;
+       i2c->base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(i2c->base))
+               return PTR_ERR(i2c->base);
 
        pdata = pdev->dev.platform_data;
        if (pdata) {
index 20d41bfa7c1989ccc6001730ce11d1117aa3fa13..a9bf4ca78bb9c4f5b37784b0dbf44ecf40b5541e 100644 (file)
@@ -1103,11 +1103,9 @@ omap_i2c_probe(struct platform_device *pdev)
                return -ENOMEM;
        }
 
-       dev->base = devm_request_and_ioremap(&pdev->dev, mem);
-       if (!dev->base) {
-               dev_err(&pdev->dev, "I2C region already claimed\n");
-               return -ENOMEM;
-       }
+       dev->base = devm_ioremap_resource(&pdev->dev, mem);
+       if (IS_ERR(dev->base))
+               return PTR_ERR(dev->base);
 
        match = of_match_device(of_match_ptr(omap_i2c_of_match), &pdev->dev);
        if (match) {
index 9bd4d73d29e3593fb86ad2bfb47161bafa68a192..4ba4a95b6b2607eda712fa1dcbfea6b4cab3751a 100644 (file)
@@ -642,11 +642,9 @@ static int rcar_i2c_probe(struct platform_device *pdev)
        if (ret < 0)
                return ret;
 
-       priv->io = devm_request_and_ioremap(dev, res);
-       if (!priv->io) {
-               dev_err(dev, "cannot ioremap\n");
-               return -ENODEV;
-       }
+       priv->io = devm_ioremap_resource(dev, res);
+       if (IS_ERR(priv->io))
+               return PTR_ERR(priv->io);
 
        priv->irq = platform_get_irq(pdev, 0);
        init_waitqueue_head(&priv->wait);
index a290d089ceaf084702530af3ebce4fe458e9132c..c807a6d14f0ccc69e21105f74461963a1bbcb3cf 100644 (file)
@@ -1042,11 +1042,10 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
                goto err_clk;
        }
 
-       i2c->regs = devm_request_and_ioremap(&pdev->dev, res);
+       i2c->regs = devm_ioremap_resource(&pdev->dev, res);
 
-       if (i2c->regs == NULL) {
-               dev_err(&pdev->dev, "cannot map IO\n");
-               ret = -ENXIO;
+       if (IS_ERR(i2c->regs)) {
+               ret = PTR_ERR(i2c->regs);
                goto err_clk;
        }
 
index 3f1818b87974f14b77e1bce19a5116b1e9f7359e..183cf05be1de88c72108319ca948b5035ad9331e 100644 (file)
@@ -308,10 +308,9 @@ static int i2c_sirfsoc_probe(struct platform_device *pdev)
                goto out;
        }
 
-       siic->base = devm_request_and_ioremap(&pdev->dev, mem_res);
-       if (siic->base == NULL) {
-               dev_err(&pdev->dev, "IO remap failed!\n");
-               err = -ENOMEM;
+       siic->base = devm_ioremap_resource(&pdev->dev, mem_res);
+       if (IS_ERR(siic->base)) {
+               err = PTR_ERR(siic->base);
                goto out;
        }
 
index 580a0c04cb42d6b3b16716b57f5f352ecaa314c1..60195b590637d89aa6f4345e861a9f72953eec66 100644 (file)
@@ -888,11 +888,11 @@ stu300_probe(struct platform_device *pdev)
        if (!res)
                return -ENOENT;
 
-       dev->virtbase = devm_request_and_ioremap(&pdev->dev, res);
+       dev->virtbase = devm_ioremap_resource(&pdev->dev, res);
        dev_dbg(&pdev->dev, "initialize bus device I2C%d on virtual "
                "base %p\n", bus_nr, dev->virtbase);
-       if (!dev->virtbase)
-               return -ENOMEM;
+       if (IS_ERR(dev->virtbase))
+               return PTR_ERR(dev->virtbase);
 
        dev->irq = platform_get_irq(pdev, 0);
        ret = devm_request_irq(&pdev->dev, dev->irq, stu300_irh, 0, NAME, dev);
index 7b38877ffec10ed06995b191a024871c9c1e923d..1fb30099dac4808c6cfeb42464bd36532698e008 100644 (file)
@@ -669,11 +669,9 @@ static int tegra_i2c_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       base = devm_request_and_ioremap(&pdev->dev, res);
-       if (!base) {
-               dev_err(&pdev->dev, "Cannot request/ioremap I2C registers\n");
-               return -EADDRNOTAVAIL;
-       }
+       base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(base))
+               return PTR_ERR(base);
 
        res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
        if (!res) {
index a005265461da1d2bb7da484d61204265bc2935a6..93f029e98c0d0fc9d93f47d613614c48f78a436d 100644 (file)
@@ -7,6 +7,7 @@
  * warranty of any kind, whether express or implied.
  */
 
+#include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/slab.h>
@@ -225,11 +226,9 @@ static int xlr_i2c_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       priv->iobase = devm_request_and_ioremap(&pdev->dev, res);
-       if (!priv->iobase) {
-               dev_err(&pdev->dev, "devm_request_and_ioremap failed\n");
-               return -EBUSY;
-       }
+       priv->iobase = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(priv->iobase))
+               return PTR_ERR(priv->iobase);
 
        priv->adap.dev.parent = &pdev->dev;
        priv->adap.owner        = THIS_MODULE;