diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2018-11-09 10:54:53 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-11-09 10:54:53 +0100 |
commit | b20dc8549f9a2638bdb3e70125d20b0be84fc975 (patch) | |
tree | c8293ec68ef66d9e5e40d61630658101eb81b28b /drivers | |
parent | 838245412c3d10f1a36efd7373782a4078bd4f00 (diff) | |
parent | 58063a54ba59cf89249c8e1dc4ba4da3c91aa903 (diff) | |
download | barebox-b20dc8549f9a2638bdb3e70125d20b0be84fc975.tar.gz barebox-b20dc8549f9a2638bdb3e70125d20b0be84fc975.tar.xz |
Merge branch 'for-next/driver'
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/driver.c | 53 |
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) |