Commit 979834313271203d1e6e84241cc3aca4503a3dbb
Committed by
Greg Kroah-Hartman
1 parent
a816e3113b
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
drivers/usb/host/ehci-atmel.c: use devm_ functions
The various devm_ functions allocate memory that is released when a driver detaches. This patch uses these functions for data that is allocated in the probe function of a platform device and is only freed in the remove function. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing 1 changed file with 6 additions and 24 deletions Side-by-side Diff
drivers/usb/host/ehci-atmel.c
... | ... | @@ -150,31 +150,24 @@ |
150 | 150 | hcd->rsrc_start = res->start; |
151 | 151 | hcd->rsrc_len = resource_size(res); |
152 | 152 | |
153 | - if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, | |
154 | - driver->description)) { | |
155 | - dev_dbg(&pdev->dev, "controller already in use\n"); | |
156 | - retval = -EBUSY; | |
157 | - goto fail_request_resource; | |
158 | - } | |
159 | - | |
160 | - hcd->regs = ioremap_nocache(hcd->rsrc_start, hcd->rsrc_len); | |
153 | + hcd->regs = devm_request_and_ioremap(&pdev->dev, res); | |
161 | 154 | if (hcd->regs == NULL) { |
162 | 155 | dev_dbg(&pdev->dev, "error mapping memory\n"); |
163 | 156 | retval = -EFAULT; |
164 | - goto fail_ioremap; | |
157 | + goto fail_request_resource; | |
165 | 158 | } |
166 | 159 | |
167 | - iclk = clk_get(&pdev->dev, "ehci_clk"); | |
160 | + iclk = devm_clk_get(&pdev->dev, "ehci_clk"); | |
168 | 161 | if (IS_ERR(iclk)) { |
169 | 162 | dev_err(&pdev->dev, "Error getting interface clock\n"); |
170 | 163 | retval = -ENOENT; |
171 | - goto fail_get_iclk; | |
164 | + goto fail_request_resource; | |
172 | 165 | } |
173 | - fclk = clk_get(&pdev->dev, "uhpck"); | |
166 | + fclk = devm_clk_get(&pdev->dev, "uhpck"); | |
174 | 167 | if (IS_ERR(fclk)) { |
175 | 168 | dev_err(&pdev->dev, "Error getting function clock\n"); |
176 | 169 | retval = -ENOENT; |
177 | - goto fail_get_fclk; | |
170 | + goto fail_request_resource; | |
178 | 171 | } |
179 | 172 | |
180 | 173 | atmel_start_ehci(pdev); |
... | ... | @@ -187,13 +180,6 @@ |
187 | 180 | |
188 | 181 | fail_add_hcd: |
189 | 182 | atmel_stop_ehci(pdev); |
190 | - clk_put(fclk); | |
191 | -fail_get_fclk: | |
192 | - clk_put(iclk); | |
193 | -fail_get_iclk: | |
194 | - iounmap(hcd->regs); | |
195 | -fail_ioremap: | |
196 | - release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | |
197 | 183 | fail_request_resource: |
198 | 184 | usb_put_hcd(hcd); |
199 | 185 | fail_create_hcd: |
200 | 186 | |
... | ... | @@ -209,13 +195,9 @@ |
209 | 195 | |
210 | 196 | ehci_shutdown(hcd); |
211 | 197 | usb_remove_hcd(hcd); |
212 | - iounmap(hcd->regs); | |
213 | - release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | |
214 | 198 | usb_put_hcd(hcd); |
215 | 199 | |
216 | 200 | atmel_stop_ehci(pdev); |
217 | - clk_put(fclk); | |
218 | - clk_put(iclk); | |
219 | 201 | fclk = iclk = NULL; |
220 | 202 | |
221 | 203 | return 0; |