aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/driver-model/devres.txt1
-rw-r--r--drivers/bus/brcmstb_gisb.c6
-rw-r--r--drivers/gpu/drm/armada/armada_crtc.c8
-rw-r--r--include/linux/device.h2
-rw-r--r--lib/devres.c28
-rw-r--r--scripts/coccinelle/api/devm_ioremap_resource.cocci90
6 files changed, 6 insertions, 129 deletions
diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt
index 1525e30483fd..de6bc8c325e9 100644
--- a/Documentation/driver-model/devres.txt
+++ b/Documentation/driver-model/devres.txt
@@ -278,7 +278,6 @@ IOMAP
278 devm_ioremap_nocache() 278 devm_ioremap_nocache()
279 devm_iounmap() 279 devm_iounmap()
280 devm_ioremap_resource() : checks resource, requests memory region, ioremaps 280 devm_ioremap_resource() : checks resource, requests memory region, ioremaps
281 devm_request_and_ioremap() : obsoleted by devm_ioremap_resource()
282 pcim_iomap() 281 pcim_iomap()
283 pcim_iounmap() 282 pcim_iounmap()
284 pcim_iomap_table() : array of mapped addresses indexed by BAR 283 pcim_iomap_table() : array of mapped addresses indexed by BAR
diff --git a/drivers/bus/brcmstb_gisb.c b/drivers/bus/brcmstb_gisb.c
index 6159b7752a64..f2cd6a2d40b4 100644
--- a/drivers/bus/brcmstb_gisb.c
+++ b/drivers/bus/brcmstb_gisb.c
@@ -212,9 +212,9 @@ static int brcmstb_gisb_arb_probe(struct platform_device *pdev)
212 mutex_init(&gdev->lock); 212 mutex_init(&gdev->lock);
213 INIT_LIST_HEAD(&gdev->next); 213 INIT_LIST_HEAD(&gdev->next);
214 214
215 gdev->base = devm_request_and_ioremap(&pdev->dev, r); 215 gdev->base = devm_ioremap_resource(&pdev->dev, r);
216 if (!gdev->base) 216 if (IS_ERR(gdev->base))
217 return -ENOMEM; 217 return PTR_ERR(gdev->base);
218 218
219 err = devm_request_irq(&pdev->dev, timeout_irq, 219 err = devm_request_irq(&pdev->dev, timeout_irq,
220 brcmstb_gisb_timeout_handler, 0, pdev->name, 220 brcmstb_gisb_timeout_handler, 0, pdev->name,
diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c
index 81c34f949dfc..3aedf9e993e6 100644
--- a/drivers/gpu/drm/armada/armada_crtc.c
+++ b/drivers/gpu/drm/armada/armada_crtc.c
@@ -1039,11 +1039,9 @@ int armada_drm_crtc_create(struct drm_device *dev, unsigned num,
1039 if (ret) 1039 if (ret)
1040 return ret; 1040 return ret;
1041 1041
1042 base = devm_request_and_ioremap(dev->dev, res); 1042 base = devm_ioremap_resource(dev->dev, res);
1043 if (!base) { 1043 if (IS_ERR(base))
1044 DRM_ERROR("failed to ioremap register\n"); 1044 return PTR_ERR(base);
1045 return -ENOMEM;
1046 }
1047 1045
1048 dcrtc = kzalloc(sizeof(*dcrtc), GFP_KERNEL); 1046 dcrtc = kzalloc(sizeof(*dcrtc), GFP_KERNEL);
1049 if (!dcrtc) { 1047 if (!dcrtc) {
diff --git a/include/linux/device.h b/include/linux/device.h
index af424acd393d..921fa0a74df6 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -631,8 +631,6 @@ extern unsigned long devm_get_free_pages(struct device *dev,
631extern void devm_free_pages(struct device *dev, unsigned long addr); 631extern void devm_free_pages(struct device *dev, unsigned long addr);
632 632
633void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res); 633void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res);
634void __iomem *devm_request_and_ioremap(struct device *dev,
635 struct resource *res);
636 634
637/* allows to add/remove a custom action to devres stack */ 635/* allows to add/remove a custom action to devres stack */
638int devm_add_action(struct device *dev, void (*action)(void *), void *data); 636int devm_add_action(struct device *dev, void (*action)(void *), void *data);
diff --git a/lib/devres.c b/lib/devres.c
index f562bf6ff71d..6a4aee8a3a7e 100644
--- a/lib/devres.c
+++ b/lib/devres.c
@@ -142,34 +142,6 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)
142} 142}
143EXPORT_SYMBOL(devm_ioremap_resource); 143EXPORT_SYMBOL(devm_ioremap_resource);
144 144
145/**
146 * devm_request_and_ioremap() - Check, request region, and ioremap resource
147 * @dev: Generic device to handle the resource for
148 * @res: resource to be handled
149 *
150 * Takes all necessary steps to ioremap a mem resource. Uses managed device, so
151 * everything is undone on driver detach. Checks arguments, so you can feed
152 * it the result from e.g. platform_get_resource() directly. Returns the
153 * remapped pointer or NULL on error. Usage example:
154 *
155 * res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
156 * base = devm_request_and_ioremap(&pdev->dev, res);
157 * if (!base)
158 * return -EADDRNOTAVAIL;
159 */
160void __iomem *devm_request_and_ioremap(struct device *dev,
161 struct resource *res)
162{
163 void __iomem *dest_ptr;
164
165 dest_ptr = devm_ioremap_resource(dev, res);
166 if (IS_ERR(dest_ptr))
167 return NULL;
168
169 return dest_ptr;
170}
171EXPORT_SYMBOL(devm_request_and_ioremap);
172
173#ifdef CONFIG_HAS_IOPORT_MAP 145#ifdef CONFIG_HAS_IOPORT_MAP
174/* 146/*
175 * Generic iomap devres 147 * Generic iomap devres
diff --git a/scripts/coccinelle/api/devm_ioremap_resource.cocci b/scripts/coccinelle/api/devm_ioremap_resource.cocci
deleted file mode 100644
index 495daa3dbf77..000000000000
--- a/scripts/coccinelle/api/devm_ioremap_resource.cocci
+++ /dev/null
@@ -1,90 +0,0 @@
1virtual patch
2virtual report
3
4@depends on patch@
5expression base, dev, res;
6@@
7
8-base = devm_request_and_ioremap(dev, res);
9+base = devm_ioremap_resource(dev, res);
10 ...
11 if (
12-base == NULL
13+IS_ERR(base)
14 || ...) {
15<...
16- return ...;
17+ return PTR_ERR(base);
18...>
19 }
20
21@depends on patch@
22expression e, E, ret;
23identifier l;
24@@
25
26 e = devm_ioremap_resource(...);
27 ...
28 if (IS_ERR(e) || ...) {
29 ... when any
30- ret = E;
31+ ret = PTR_ERR(e);
32 ...
33(
34 return ret;
35|
36 goto l;
37)
38 }
39
40@depends on patch@
41expression e;
42@@
43
44 e = devm_ioremap_resource(...);
45 ...
46 if (IS_ERR(e) || ...) {
47 ...
48- \(dev_dbg\|dev_err\|pr_debug\|pr_err\|DRM_ERROR\)(...);
49 ...
50 }
51
52@depends on patch@
53expression e;
54identifier l;
55@@
56
57 e = devm_ioremap_resource(...);
58 ...
59 if (IS_ERR(e) || ...)
60-{
61(
62 return ...;
63|
64 goto l;
65)
66-}
67
68@r depends on report@
69expression e;
70identifier l;
71position p1;
72@@
73
74*e = devm_request_and_ioremap@p1(...);
75 ...
76 if (e == NULL || ...) {
77 ...
78(
79 return ...;
80|
81 goto l;
82)
83 }
84
85@script:python depends on r@
86p1 << r.p1;
87@@
88
89msg = "ERROR: deprecated devm_request_and_ioremap() API used on line %s" % (p1[0].line)
90coccilib.report.print_report(p1[0], msg)