diff options
author | Jingoo Han <jg1.han@samsung.com> | 2013-12-11 02:26:21 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-12-18 19:35:10 -0500 |
commit | f1080e4d90b2c0ec3ce850a9fad8ac8a79df3b23 (patch) | |
tree | 26b72d6dcc6faded4062164012268220ae30b364 /drivers/usb/host/ohci-pxa27x.c | |
parent | 49aa57bda7e54ee6e37844bae83e122f44b30637 (diff) |
USB: ohci-pxa27x:Use devm_*() functions
Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ohci-pxa27x.c')
-rw-r--r-- | drivers/usb/host/ohci-pxa27x.c | 38 |
1 files changed, 10 insertions, 28 deletions
diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c index 9352a4d42563..d21d5fefa76c 100644 --- a/drivers/usb/host/ohci-pxa27x.c +++ b/drivers/usb/host/ohci-pxa27x.c | |||
@@ -388,37 +388,28 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device | |||
388 | return -ENXIO; | 388 | return -ENXIO; |
389 | } | 389 | } |
390 | 390 | ||
391 | usb_clk = clk_get(&pdev->dev, NULL); | 391 | usb_clk = devm_clk_get(&pdev->dev, NULL); |
392 | if (IS_ERR(usb_clk)) | 392 | if (IS_ERR(usb_clk)) |
393 | return PTR_ERR(usb_clk); | 393 | return PTR_ERR(usb_clk); |
394 | 394 | ||
395 | hcd = usb_create_hcd (driver, &pdev->dev, "pxa27x"); | 395 | hcd = usb_create_hcd (driver, &pdev->dev, "pxa27x"); |
396 | if (!hcd) { | 396 | if (!hcd) |
397 | retval = -ENOMEM; | 397 | return -ENOMEM; |
398 | goto err0; | ||
399 | } | ||
400 | 398 | ||
401 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 399 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
402 | if (!r) { | 400 | if (!r) { |
403 | pr_err("no resource of IORESOURCE_MEM"); | 401 | pr_err("no resource of IORESOURCE_MEM"); |
404 | retval = -ENXIO; | 402 | retval = -ENXIO; |
405 | goto err1; | 403 | goto err; |
406 | } | 404 | } |
407 | 405 | ||
408 | hcd->rsrc_start = r->start; | 406 | hcd->rsrc_start = r->start; |
409 | hcd->rsrc_len = resource_size(r); | 407 | hcd->rsrc_len = resource_size(r); |
410 | 408 | ||
411 | if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { | 409 | hcd->regs = devm_ioremap_resource(&pdev->dev, r); |
412 | pr_debug("request_mem_region failed"); | 410 | if (IS_ERR(hcd->regs)) { |
413 | retval = -EBUSY; | 411 | retval = PTR_ERR(hcd->regs); |
414 | goto err1; | 412 | goto err; |
415 | } | ||
416 | |||
417 | hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); | ||
418 | if (!hcd->regs) { | ||
419 | pr_debug("ioremap failed"); | ||
420 | retval = -ENOMEM; | ||
421 | goto err2; | ||
422 | } | 413 | } |
423 | 414 | ||
424 | /* initialize "struct pxa27x_ohci" */ | 415 | /* initialize "struct pxa27x_ohci" */ |
@@ -429,7 +420,7 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device | |||
429 | retval = pxa27x_start_hc(pxa_ohci, &pdev->dev); | 420 | retval = pxa27x_start_hc(pxa_ohci, &pdev->dev); |
430 | if (retval < 0) { | 421 | if (retval < 0) { |
431 | pr_debug("pxa27x_start_hc failed"); | 422 | pr_debug("pxa27x_start_hc failed"); |
432 | goto err3; | 423 | goto err; |
433 | } | 424 | } |
434 | 425 | ||
435 | /* Select Power Management Mode */ | 426 | /* Select Power Management Mode */ |
@@ -449,14 +440,8 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device | |||
449 | } | 440 | } |
450 | 441 | ||
451 | pxa27x_stop_hc(pxa_ohci, &pdev->dev); | 442 | pxa27x_stop_hc(pxa_ohci, &pdev->dev); |
452 | err3: | 443 | err: |
453 | iounmap(hcd->regs); | ||
454 | err2: | ||
455 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | ||
456 | err1: | ||
457 | usb_put_hcd(hcd); | 444 | usb_put_hcd(hcd); |
458 | err0: | ||
459 | clk_put(usb_clk); | ||
460 | return retval; | 445 | return retval; |
461 | } | 446 | } |
462 | 447 | ||
@@ -480,9 +465,6 @@ void usb_hcd_pxa27x_remove (struct usb_hcd *hcd, struct platform_device *pdev) | |||
480 | 465 | ||
481 | usb_remove_hcd(hcd); | 466 | usb_remove_hcd(hcd); |
482 | pxa27x_stop_hc(pxa_ohci, &pdev->dev); | 467 | pxa27x_stop_hc(pxa_ohci, &pdev->dev); |
483 | iounmap(hcd->regs); | ||
484 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | ||
485 | clk_put(pxa_ohci->clk); | ||
486 | usb_put_hcd(hcd); | 468 | usb_put_hcd(hcd); |
487 | } | 469 | } |
488 | 470 | ||