summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-07-31 08:38:08 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-09-16 08:32:09 +0200
commitdde56d42ad1763dd81a3de65b74d7387d12f6fa9 (patch)
tree888d48be1b4beaaa73195f1879a9369d84c5af88
parent82ed2054665a2c6caa7b7a69143583e051289812 (diff)
downloadbarebox-dde56d42ad1763dd81a3de65b74d7387d12f6fa9.tar.gz
barebox-dde56d42ad1763dd81a3de65b74d7387d12f6fa9.tar.xz
resource: Let request_iomem_region return an error pointer
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--common/memory.c4
-rw-r--r--common/resource.c8
-rw-r--r--drivers/amba/bus.c5
-rw-r--r--drivers/ata/intf_platform_ide.c1
-rw-r--r--drivers/base/driver.c4
-rw-r--r--drivers/gpio/gpio-generic.c5
-rw-r--r--drivers/mfd/syscon.c4
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c4
8 files changed, 16 insertions, 19 deletions
diff --git a/common/memory.c b/common/memory.c
index c56455002a..57c73abb22 100644
--- a/common/memory.c
+++ b/common/memory.c
@@ -124,8 +124,8 @@ int barebox_add_memory_bank(const char *name, resource_size_t start,
struct device_d *dev;
bank->res = request_iomem_region(name, start, start + size - 1);
- if (!bank->res)
- return -EBUSY;
+ if (IS_ERR(bank->res))
+ return PTR_ERR(bank->res);
dev = add_mem_device(name, start, size, IORESOURCE_MEM_WRITEABLE);
diff --git a/common/resource.c b/common/resource.c
index 6e84bd8ee5..fd04f26f78 100644
--- a/common/resource.c
+++ b/common/resource.c
@@ -125,13 +125,7 @@ struct resource iomem_resource = {
struct resource *request_iomem_region(const char *name,
resource_size_t start, resource_size_t end)
{
- struct resource *res;
-
- res = __request_region(&iomem_resource, name, start, end);
- if (IS_ERR(res))
- return NULL;
-
- return res;
+ return __request_region(&iomem_resource, name, start, end);
}
/* The root resource for the whole io-mapped io space */
diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c
index 6106252264..b934e1182d 100644
--- a/drivers/amba/bus.c
+++ b/drivers/amba/bus.c
@@ -7,6 +7,7 @@
#include <common.h>
#include <driver.h>
#include <linux/clk.h>
+#include <linux/err.h>
#include <linux/amba/bus.h>
#include <io.h>
#include <init.h>
@@ -115,8 +116,8 @@ int amba_device_add(struct amba_device *dev)
*/
size = resource_size(&dev->res);
res = request_iomem_region("amba", dev->res.start, dev->res.end);
- if (!res)
- return -ENOMEM;
+ if (IS_ERR(res))
+ return PTR_ERR(res);
dev->base = tmp = (void __force __iomem *)res->start;
if (!tmp) {
ret = -ENOMEM;
diff --git a/drivers/ata/intf_platform_ide.c b/drivers/ata/intf_platform_ide.c
index b3faf47553..db4c35611d 100644
--- a/drivers/ata/intf_platform_ide.c
+++ b/drivers/ata/intf_platform_ide.c
@@ -28,6 +28,7 @@
#include <errno.h>
#include <ata_drive.h>
#include <platform_ide.h>
+#include <linux/err.h>
/**
* Setup the register specific addresses for an ATA like divice
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index e39a351bab..d90da4227a 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -311,7 +311,7 @@ void __iomem *dev_request_mem_region_by_name(struct device_d *dev, const char *n
return NULL;
res = request_iomem_region(dev_name(dev), res->start, res->end);
- if (!res)
+ if (IS_ERR(res))
return NULL;
return (void __force __iomem *)res->start;
@@ -327,7 +327,7 @@ void __iomem *dev_request_mem_region(struct device_d *dev, int num)
return NULL;
res = request_iomem_region(dev_name(dev), res->start, res->end);
- if (!res)
+ if (IS_ERR(res))
return NULL;
return (void __force __iomem *)res->start;
diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c
index eeb4b4277c..1524a3304b 100644
--- a/drivers/gpio/gpio-generic.c
+++ b/drivers/gpio/gpio-generic.c
@@ -15,6 +15,7 @@
#include <malloc.h>
#include <linux/err.h>
#include <linux/log2.h>
+#include <linux/err.h>
#include <linux/basic_mmio_gpio.h>
static void bgpio_write8(void __iomem *reg, unsigned int data)
@@ -321,8 +322,8 @@ static void __iomem *bgpio_map(struct device_d *dev, const char *name,
}
ret = request_iomem_region(dev_name(dev), r->start, r->end);
- if (!ret) {
- *err = -ENOMEM;
+ if (IS_ERR(ret)) {
+ *err = PTR_ERR(ret);
return NULL;
}
diff --git a/drivers/mfd/syscon.c b/drivers/mfd/syscon.c
index 55cc34ff56..231f4fef97 100644
--- a/drivers/mfd/syscon.c
+++ b/drivers/mfd/syscon.c
@@ -77,9 +77,9 @@ static int syscon_probe(struct device_d *dev)
}
res = request_iomem_region(dev_name(dev), res->start, res->end);
- if (!res) {
+ if (IS_ERR(res)) {
free(syscon);
- return -EBUSY;
+ return PTR_ERR(res);
}
syscon->base = (void __iomem *)res->start;
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 56377ea276..a5b52a8bc0 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -341,10 +341,10 @@ static int rockchip_get_bank_data(struct rockchip_pin_bank *bank,
}
res = request_iomem_region(dev_name(dev), node_res.start, node_res.end);
- if (!res) {
+ if (IS_ERR(res)) {
dev_err(dev, "cannot request iomem region %08x\n",
node_res.start);
- return -ENOENT;
+ return PTR_ERR(res);
}
bank->reg_base = (void __iomem *)res->start;