Commit 979834313271203d1e6e84241cc3aca4503a3dbb

Authored by Julia Lawall
Committed by Greg Kroah-Hartman
1 parent a816e3113b

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;