fotg210: Use managed interfaces for allocation of resources
authorHimangi Saraogi <himangi774@gmail.com>
Tue, 1 Jul 2014 20:34:44 +0000 (02:04 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Jul 2014 23:31:48 +0000 (16:31 -0700)
This patch intoduces the use of devm_ioremap_resource instead of
request_mem_region and ioremap_nocache and removes the calls to free the
allocated memory. Some labels are removes and a new label failed
introduced to make it less specific to the context. The call to a
platform get resource with IORESOURCE_IO is removed as it allocates
memory that is not needed.

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/fotg210-hcd.c

index 98a89d16cc3e8f8e117b325620e36517e45ab523..adcd2050dced2e1aef3f3447abc1df1fd72c45e7 100644 (file)
@@ -5838,41 +5838,17 @@ static int fotg210_hcd_probe(struct platform_device *pdev)
                goto fail_create_hcd;
        }
 
+       hcd->has_tt = 1;
+
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res) {
-               dev_err(dev,
-                       "Found HC with no register addr. Check %s setup!\n",
-                       dev_name(dev));
-               retval = -ENODEV;
-               goto fail_request_resource;
+       hcd->regs = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(hcd->regs)) {
+               retval = PTR_ERR(hcd->regs);
+               goto failed;
        }
 
        hcd->rsrc_start = res->start;
        hcd->rsrc_len = resource_size(res);
-       hcd->has_tt = 1;
-
-       if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len,
-                               fotg210_fotg210_hc_driver.description)) {
-               dev_dbg(dev, "controller already in use\n");
-               retval = -EBUSY;
-               goto fail_request_resource;
-       }
-
-       res = platform_get_resource(pdev, IORESOURCE_IO, 0);
-       if (!res) {
-               dev_err(dev,
-                       "Found HC with no register addr. Check %s setup!\n",
-                       dev_name(dev));
-               retval = -ENODEV;
-               goto fail_request_resource;
-       }
-
-       hcd->regs = ioremap_nocache(res->start, resource_size(res));
-       if (hcd->regs == NULL) {
-               dev_dbg(dev, "error mapping memory\n");
-               retval = -EFAULT;
-               goto fail_ioremap;
-       }
 
        fotg210 = hcd_to_fotg210(hcd);
 
@@ -5880,24 +5856,20 @@ static int fotg210_hcd_probe(struct platform_device *pdev)
 
        retval = fotg210_setup(hcd);
        if (retval)
-               goto fail_add_hcd;
+               goto failed;
 
        fotg210_init(fotg210);
 
        retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
        if (retval) {
                dev_err(dev, "failed to add hcd with err %d\n", retval);
-               goto fail_add_hcd;
+               goto failed;
        }
        device_wakeup_enable(hcd->self.controller);
 
        return retval;
 
-fail_add_hcd:
-       iounmap(hcd->regs);
-fail_ioremap:
-       release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
-fail_request_resource:
+failed:
        usb_put_hcd(hcd);
 fail_create_hcd:
        dev_err(dev, "init %s fail, %d\n", dev_name(dev), retval);
@@ -5918,8 +5890,6 @@ static int fotg210_hcd_remove(struct platform_device *pdev)
                return 0;
 
        usb_remove_hcd(hcd);
-       iounmap(hcd->regs);
-       release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
        usb_put_hcd(hcd);
 
        return 0;