diff options
| author | Jingoo Han <jg1.han@samsung.com> | 2013-12-11 02:23:39 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-12-18 19:35:11 -0500 |
| commit | 644db16636555b30611b612d5059914147e07042 (patch) | |
| tree | 3cfeb04e470de3c9efa6f32df6e031da1be14405 /drivers/usb/host | |
| parent | c81c3b0115d7d1bd83137eb800ed6c16c86182e2 (diff) | |
USB: ohci-da8xx: 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')
| -rw-r--r-- | drivers/usb/host/ohci-da8xx.c | 55 |
1 files changed, 15 insertions, 40 deletions
diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c index f0fe0d26314d..df06be6b47f5 100644 --- a/drivers/usb/host/ohci-da8xx.c +++ b/drivers/usb/host/ohci-da8xx.c | |||
| @@ -300,41 +300,28 @@ static int usb_hcd_da8xx_probe(const struct hc_driver *driver, | |||
| 300 | if (hub == NULL) | 300 | if (hub == NULL) |
| 301 | return -ENODEV; | 301 | return -ENODEV; |
| 302 | 302 | ||
| 303 | usb11_clk = clk_get(&pdev->dev, "usb11"); | 303 | usb11_clk = devm_clk_get(&pdev->dev, "usb11"); |
| 304 | if (IS_ERR(usb11_clk)) | 304 | if (IS_ERR(usb11_clk)) |
| 305 | return PTR_ERR(usb11_clk); | 305 | return PTR_ERR(usb11_clk); |
| 306 | 306 | ||
| 307 | usb20_clk = clk_get(&pdev->dev, "usb20"); | 307 | usb20_clk = devm_clk_get(&pdev->dev, "usb20"); |
| 308 | if (IS_ERR(usb20_clk)) { | 308 | if (IS_ERR(usb20_clk)) |
| 309 | error = PTR_ERR(usb20_clk); | 309 | return PTR_ERR(usb20_clk); |
| 310 | goto err0; | ||
| 311 | } | ||
| 312 | 310 | ||
| 313 | hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev)); | 311 | hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev)); |
| 314 | if (!hcd) { | 312 | if (!hcd) |
| 315 | error = -ENOMEM; | 313 | return -ENOMEM; |
| 316 | goto err1; | ||
| 317 | } | ||
| 318 | 314 | ||
| 319 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 315 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 320 | if (!mem) { | 316 | if (!mem) |
| 321 | error = -ENODEV; | 317 | return -ENODEV; |
| 322 | goto err2; | ||
| 323 | } | ||
| 324 | hcd->rsrc_start = mem->start; | 318 | hcd->rsrc_start = mem->start; |
| 325 | hcd->rsrc_len = resource_size(mem); | 319 | hcd->rsrc_len = resource_size(mem); |
| 326 | 320 | ||
| 327 | if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { | 321 | hcd->regs = devm_ioremap_resource(&pdev->dev, mem); |
| 328 | dev_dbg(&pdev->dev, "request_mem_region failed\n"); | 322 | if (IS_ERR(hcd->regs)) { |
| 329 | error = -EBUSY; | 323 | error = PTR_ERR(hcd->regs); |
| 330 | goto err2; | 324 | goto err; |
| 331 | } | ||
| 332 | |||
| 333 | hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); | ||
| 334 | if (!hcd->regs) { | ||
| 335 | dev_err(&pdev->dev, "ioremap failed\n"); | ||
| 336 | error = -ENOMEM; | ||
| 337 | goto err3; | ||
| 338 | } | 325 | } |
| 339 | 326 | ||
| 340 | ohci_hcd_init(hcd_to_ohci(hcd)); | 327 | ohci_hcd_init(hcd_to_ohci(hcd)); |
| @@ -342,11 +329,11 @@ static int usb_hcd_da8xx_probe(const struct hc_driver *driver, | |||
| 342 | irq = platform_get_irq(pdev, 0); | 329 | irq = platform_get_irq(pdev, 0); |
| 343 | if (irq < 0) { | 330 | if (irq < 0) { |
| 344 | error = -ENODEV; | 331 | error = -ENODEV; |
| 345 | goto err4; | 332 | goto err; |
| 346 | } | 333 | } |
| 347 | error = usb_add_hcd(hcd, irq, 0); | 334 | error = usb_add_hcd(hcd, irq, 0); |
| 348 | if (error) | 335 | if (error) |
| 349 | goto err4; | 336 | goto err; |
| 350 | 337 | ||
| 351 | device_wakeup_enable(hcd->self.controller); | 338 | device_wakeup_enable(hcd->self.controller); |
| 352 | 339 | ||
| @@ -357,16 +344,8 @@ static int usb_hcd_da8xx_probe(const struct hc_driver *driver, | |||
| 357 | } | 344 | } |
| 358 | 345 | ||
| 359 | usb_remove_hcd(hcd); | 346 | usb_remove_hcd(hcd); |
| 360 | err4: | 347 | err: |
| 361 | iounmap(hcd->regs); | ||
| 362 | err3: | ||
| 363 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | ||
| 364 | err2: | ||
| 365 | usb_put_hcd(hcd); | 348 | usb_put_hcd(hcd); |
| 366 | err1: | ||
| 367 | clk_put(usb20_clk); | ||
| 368 | err0: | ||
| 369 | clk_put(usb11_clk); | ||
| 370 | return error; | 349 | return error; |
| 371 | } | 350 | } |
| 372 | 351 | ||
| @@ -386,11 +365,7 @@ usb_hcd_da8xx_remove(struct usb_hcd *hcd, struct platform_device *pdev) | |||
| 386 | 365 | ||
| 387 | hub->ocic_notify(NULL); | 366 | hub->ocic_notify(NULL); |
| 388 | usb_remove_hcd(hcd); | 367 | usb_remove_hcd(hcd); |
| 389 | iounmap(hcd->regs); | ||
| 390 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | ||
| 391 | usb_put_hcd(hcd); | 368 | usb_put_hcd(hcd); |
| 392 | clk_put(usb20_clk); | ||
| 393 | clk_put(usb11_clk); | ||
| 394 | } | 369 | } |
| 395 | 370 | ||
| 396 | static int ohci_hcd_da8xx_drv_probe(struct platform_device *dev) | 371 | static int ohci_hcd_da8xx_drv_probe(struct platform_device *dev) |
