summaryrefslogtreecommitdiffstats
path: root/lib/devres.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/devres.c')
-rw-r--r--lib/devres.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/devres.c b/lib/devres.c
index fbe2aac522e6..f13a2468ff39 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -119,10 +119,9 @@ EXPORT_SYMBOL(devm_iounmap);
119 * @dev: generic device to handle the resource for 119 * @dev: generic device to handle the resource for
120 * @res: resource to be handled 120 * @res: resource to be handled
121 * 121 *
122 * Checks that a resource is a valid memory region, requests the memory region 122 * Checks that a resource is a valid memory region, requests the memory
123 * and ioremaps it either as cacheable or as non-cacheable memory depending on 123 * region and ioremaps it. All operations are managed and will be undone
124 * the resource's flags. All operations are managed and will be undone on 124 * on driver detach.
125 * driver detach.
126 * 125 *
127 * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code 126 * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code
128 * on failure. Usage example: 127 * on failure. Usage example:
@@ -153,11 +152,7 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)
153 return IOMEM_ERR_PTR(-EBUSY); 152 return IOMEM_ERR_PTR(-EBUSY);
154 } 153 }
155 154
156 if (res->flags & IORESOURCE_CACHEABLE) 155 dest_ptr = devm_ioremap(dev, res->start, size);
157 dest_ptr = devm_ioremap(dev, res->start, size);
158 else
159 dest_ptr = devm_ioremap_nocache(dev, res->start, size);
160
161 if (!dest_ptr) { 156 if (!dest_ptr) {
162 dev_err(dev, "ioremap failed for resource %pR\n", res); 157 dev_err(dev, "ioremap failed for resource %pR\n", res);
163 devm_release_mem_region(dev, res->start, size); 158 devm_release_mem_region(dev, res->start, size);