diff options
author | Jingoo Han <jg1.han@samsung.com> | 2012-10-07 22:28:25 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-10-24 17:40:50 -0400 |
commit | 801f00633568ed6d5eebef5ef10d8b5661379f2c (patch) | |
tree | ed8eeec018bc3f0d46006e8c1e1e7f8b5a599ec6 /drivers/usb/host/ohci-s3c2410.c | |
parent | 30b1e495b81321f572020a2f5266ece3ed1a6ecd (diff) |
USB: ohci-s3c2410: use devm_ functions
The devm_ functions allocate memory that is released when a driver
detaches. This makes the code smaller and a bit simpler.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ohci-s3c2410.c')
-rw-r--r-- | drivers/usb/host/ohci-s3c2410.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c index 281d5c658e36..e84190f25c6b 100644 --- a/drivers/usb/host/ohci-s3c2410.c +++ b/drivers/usb/host/ohci-s3c2410.c | |||
@@ -323,8 +323,6 @@ usb_hcd_s3c2410_remove(struct usb_hcd *hcd, struct platform_device *dev) | |||
323 | { | 323 | { |
324 | usb_remove_hcd(hcd); | 324 | usb_remove_hcd(hcd); |
325 | s3c2410_stop_hc(dev); | 325 | s3c2410_stop_hc(dev); |
326 | iounmap(hcd->regs); | ||
327 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | ||
328 | usb_put_hcd(hcd); | 326 | usb_put_hcd(hcd); |
329 | } | 327 | } |
330 | 328 | ||
@@ -353,35 +351,29 @@ static int usb_hcd_s3c2410_probe(const struct hc_driver *driver, | |||
353 | hcd->rsrc_start = dev->resource[0].start; | 351 | hcd->rsrc_start = dev->resource[0].start; |
354 | hcd->rsrc_len = resource_size(&dev->resource[0]); | 352 | hcd->rsrc_len = resource_size(&dev->resource[0]); |
355 | 353 | ||
356 | if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { | 354 | hcd->regs = devm_request_and_ioremap(&dev->dev, &dev->resource[0]); |
357 | dev_err(&dev->dev, "request_mem_region failed\n"); | 355 | if (!hcd->regs) { |
358 | retval = -EBUSY; | 356 | dev_err(&dev->dev, "devm_request_and_ioremap failed\n"); |
357 | retval = -ENOMEM; | ||
359 | goto err_put; | 358 | goto err_put; |
360 | } | 359 | } |
361 | 360 | ||
362 | clk = clk_get(&dev->dev, "usb-host"); | 361 | clk = devm_clk_get(&dev->dev, "usb-host"); |
363 | if (IS_ERR(clk)) { | 362 | if (IS_ERR(clk)) { |
364 | dev_err(&dev->dev, "cannot get usb-host clock\n"); | 363 | dev_err(&dev->dev, "cannot get usb-host clock\n"); |
365 | retval = PTR_ERR(clk); | 364 | retval = PTR_ERR(clk); |
366 | goto err_mem; | 365 | goto err_put; |
367 | } | 366 | } |
368 | 367 | ||
369 | usb_clk = clk_get(&dev->dev, "usb-bus-host"); | 368 | usb_clk = devm_clk_get(&dev->dev, "usb-bus-host"); |
370 | if (IS_ERR(usb_clk)) { | 369 | if (IS_ERR(usb_clk)) { |
371 | dev_err(&dev->dev, "cannot get usb-bus-host clock\n"); | 370 | dev_err(&dev->dev, "cannot get usb-bus-host clock\n"); |
372 | retval = PTR_ERR(usb_clk); | 371 | retval = PTR_ERR(usb_clk); |
373 | goto err_clk; | 372 | goto err_put; |
374 | } | 373 | } |
375 | 374 | ||
376 | s3c2410_start_hc(dev, hcd); | 375 | s3c2410_start_hc(dev, hcd); |
377 | 376 | ||
378 | hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); | ||
379 | if (!hcd->regs) { | ||
380 | dev_err(&dev->dev, "ioremap failed\n"); | ||
381 | retval = -ENOMEM; | ||
382 | goto err_ioremap; | ||
383 | } | ||
384 | |||
385 | ohci_hcd_init(hcd_to_ohci(hcd)); | 377 | ohci_hcd_init(hcd_to_ohci(hcd)); |
386 | 378 | ||
387 | retval = usb_add_hcd(hcd, dev->resource[1].start, 0); | 379 | retval = usb_add_hcd(hcd, dev->resource[1].start, 0); |
@@ -392,14 +384,6 @@ static int usb_hcd_s3c2410_probe(const struct hc_driver *driver, | |||
392 | 384 | ||
393 | err_ioremap: | 385 | err_ioremap: |
394 | s3c2410_stop_hc(dev); | 386 | s3c2410_stop_hc(dev); |
395 | iounmap(hcd->regs); | ||
396 | clk_put(usb_clk); | ||
397 | |||
398 | err_clk: | ||
399 | clk_put(clk); | ||
400 | |||
401 | err_mem: | ||
402 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | ||
403 | 387 | ||
404 | err_put: | 388 | err_put: |
405 | usb_put_hcd(hcd); | 389 | usb_put_hcd(hcd); |