summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-11-09 10:54:53 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2018-11-09 10:54:53 +0100
commitb20dc8549f9a2638bdb3e70125d20b0be84fc975 (patch)
treec8293ec68ef66d9e5e40d61630658101eb81b28b /drivers
parent838245412c3d10f1a36efd7373782a4078bd4f00 (diff)
parent58063a54ba59cf89249c8e1dc4ba4da3c91aa903 (diff)
downloadbarebox-b20dc8549f9a2638bdb3e70125d20b0be84fc975.tar.gz
barebox-b20dc8549f9a2638bdb3e70125d20b0be84fc975.tar.xz
Merge branch 'for-next/driver'
Diffstat (limited to 'drivers')
-rw-r--r--drivers/base/driver.c53
1 files changed, 15 insertions, 38 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index c43a4bde2a..3b39c28494 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -368,18 +368,6 @@ struct resource *dev_get_resource_by_name(struct device_d *dev,
return ERR_PTR(-ENOENT);
}
-void *dev_get_mem_region_by_name(struct device_d *dev, const char *name)
-{
- struct resource *res;
-
- res = dev_get_resource_by_name(dev, IORESOURCE_MEM, name);
- if (IS_ERR(res))
- return ERR_CAST(res);
-
- return (void __force *)res->start;
-}
-EXPORT_SYMBOL(dev_get_mem_region_by_name);
-
void __iomem *dev_request_mem_region_by_name(struct device_d *dev, const char *name)
{
struct resource *res;
@@ -396,32 +384,28 @@ void __iomem *dev_request_mem_region_by_name(struct device_d *dev, const char *n
}
EXPORT_SYMBOL(dev_request_mem_region_by_name);
-void __iomem *dev_request_mem_region_err_null(struct device_d *dev, int num)
+struct resource *dev_request_mem_resource(struct device_d *dev, int num)
{
struct resource *res;
res = dev_get_resource(dev, IORESOURCE_MEM, num);
if (IS_ERR(res))
- return NULL;
-
- res = request_iomem_region(dev_name(dev), res->start, res->end);
- if (IS_ERR(res))
- return NULL;
+ return ERR_CAST(res);
- return IOMEM(res->start);
+ return request_iomem_region(dev_name(dev), res->start, res->end);
}
-EXPORT_SYMBOL(dev_request_mem_region_err_null);
-struct resource *dev_request_mem_resource(struct device_d *dev, int num)
+void __iomem *dev_request_mem_region_err_null(struct device_d *dev, int num)
{
struct resource *res;
- res = dev_get_resource(dev, IORESOURCE_MEM, num);
+ res = dev_request_mem_resource(dev, num);
if (IS_ERR(res))
- return ERR_CAST(res);
+ return NULL;
- return request_iomem_region(dev_name(dev), res->start, res->end);
+ return IOMEM(res->start);
}
+EXPORT_SYMBOL(dev_request_mem_region_err_null);
void __iomem *dev_request_mem_region(struct device_d *dev, int num)
{
@@ -435,29 +419,22 @@ void __iomem *dev_request_mem_region(struct device_d *dev, int num)
}
EXPORT_SYMBOL(dev_request_mem_region);
-int generic_memmap_ro(struct cdev *cdev, void **map, int flags)
+int generic_memmap_rw(struct cdev *cdev, void **map, int flags)
{
if (!cdev->dev)
return -EINVAL;
- if (flags & PROT_WRITE)
- return -EACCES;
*map = dev_get_mem_region(cdev->dev, 0);
- if (IS_ERR(*map))
- return PTR_ERR(*map);
- return 0;
+
+ return PTR_ERR_OR_ZERO(*map);
}
-int generic_memmap_rw(struct cdev *cdev, void **map, int flags)
+int generic_memmap_ro(struct cdev *cdev, void **map, int flags)
{
- if (!cdev->dev)
- return -EINVAL;
-
- *map = dev_get_mem_region(cdev->dev, 0);
- if (IS_ERR(*map))
- return PTR_ERR(*map);
+ if (flags & PROT_WRITE)
+ return -EACCES;
- return 0;
+ return generic_memmap_rw(cdev, map, flags);
}
int dummy_probe(struct device_d *dev)