summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-07-31 09:07:06 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-09-16 08:32:10 +0200
commit5bdc82c54a3306f2ae151a00f2df54f9240395b8 (patch)
treeb20a41ad645090b15bda9a89faffc718e0d3a833
parent29b7f95f3bd244a4b4d036e1b3a94a7bfbe3581c (diff)
downloadbarebox-5bdc82c54a3306f2ae151a00f2df54f9240395b8.tar.gz
barebox-5bdc82c54a3306f2ae151a00f2df54f9240395b8.tar.xz
resource: Let dev_request_mem_region_by_name return an error pointer
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/base/driver.c4
-rw-r--r--drivers/mtd/nand/nomadik_nand.c7
-rw-r--r--drivers/video/omap.c3
3 files changed, 11 insertions, 3 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 23f31ce77e..e61c6c57ca 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -308,11 +308,11 @@ void __iomem *dev_request_mem_region_by_name(struct device_d *dev, const char *n
res = dev_get_resource_by_name(dev, IORESOURCE_MEM, name);
if (IS_ERR(res))
- return NULL;
+ return ERR_CAST(res);
res = request_iomem_region(dev_name(dev), res->start, res->end);
if (IS_ERR(res))
- return NULL;
+ return ERR_CAST(res);
return (void __force __iomem *)res->start;
}
diff --git a/drivers/mtd/nand/nomadik_nand.c b/drivers/mtd/nand/nomadik_nand.c
index fbd8ecd487..8f37345bce 100644
--- a/drivers/mtd/nand/nomadik_nand.c
+++ b/drivers/mtd/nand/nomadik_nand.c
@@ -26,6 +26,7 @@
#include <malloc.h>
#include <init.h>
+#include <linux/err.h>
#include <linux/types.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
@@ -190,7 +191,11 @@ static int nomadik_nand_probe(struct device_d *dev)
}
host->cmd_va = dev_request_mem_region_by_name(dev, "nand_cmd");
+ if (IS_ERR(host->cmd_va))
+ return PTR_ERR(host->cmd_va);
host->addr_va = dev_request_mem_region_by_name(dev, "nand_addr");
+ if (IS_ERR(host->addr_va))
+ return PTR_ERR(host->addr_va);
/* Link all private pointers */
mtd = &host->mtd;
@@ -200,6 +205,8 @@ static int nomadik_nand_probe(struct device_d *dev)
mtd->parent = dev;
nand->IO_ADDR_W = nand->IO_ADDR_R = dev_request_mem_region_by_name(dev, "nand_data");
+ if (IS_ERR(nand->IO_ADDR_W))
+ return PTR_ERR(nand->IO_ADDR_W);
nand->cmd_ctrl = nomadik_cmd_ctrl;
nand->ecc.mode = NAND_ECC_HW;
diff --git a/drivers/video/omap.c b/drivers/video/omap.c
index 485cc7538b..bd66c92f10 100644
--- a/drivers/video/omap.c
+++ b/drivers/video/omap.c
@@ -29,6 +29,7 @@
#include <malloc.h>
#include <common.h>
#include <clock.h>
+#include <linux/err.h>
#include <mach/omap4-silicon.h>
#include <mach/omap-fb.h>
@@ -442,7 +443,7 @@ static int omapfb_probe(struct device_d *dev)
fbi->dss = dev_request_mem_region_by_name(dev, "omap4_dss");
fbi->dispc = dev_request_mem_region_by_name(dev, "omap4_dispc");
- if (!fbi->dss || !fbi->dispc) {
+ if (IS_ERR(fbi->dss) || IS_ERR(fbi->dispc)) {
dev_err(dev, "Insufficient register description\n");
rc = -EINVAL;
goto out;