diff options
-rw-r--r-- | Documentation/driver-model/devres.txt | 1 | ||||
-rw-r--r-- | drivers/bus/brcmstb_gisb.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/armada/armada_crtc.c | 8 | ||||
-rw-r--r-- | include/linux/device.h | 2 | ||||
-rw-r--r-- | lib/devres.c | 28 | ||||
-rw-r--r-- | scripts/coccinelle/api/devm_ioremap_resource.cocci | 90 |
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, | |||
631 | extern void devm_free_pages(struct device *dev, unsigned long addr); | 631 | extern void devm_free_pages(struct device *dev, unsigned long addr); |
632 | 632 | ||
633 | void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res); | 633 | void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res); |
634 | void __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 */ |
638 | int devm_add_action(struct device *dev, void (*action)(void *), void *data); | 636 | int 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 | } |
143 | EXPORT_SYMBOL(devm_ioremap_resource); | 143 | EXPORT_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 | */ | ||
160 | void __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 | } | ||
171 | EXPORT_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 @@ | |||
1 | virtual patch | ||
2 | virtual report | ||
3 | |||
4 | @depends on patch@ | ||
5 | expression 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@ | ||
22 | expression e, E, ret; | ||
23 | identifier 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@ | ||
41 | expression 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@ | ||
53 | expression e; | ||
54 | identifier 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@ | ||
69 | expression e; | ||
70 | identifier l; | ||
71 | position 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@ | ||
86 | p1 << r.p1; | ||
87 | @@ | ||
88 | |||
89 | msg = "ERROR: deprecated devm_request_and_ioremap() API used on line %s" % (p1[0].line) | ||
90 | coccilib.report.print_report(p1[0], msg) | ||