Skip to content

Commit

Permalink
fotg210: Use managed interfaces for allocation of resources
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Himangi Saraogi authored and Greg Kroah-Hartman committed Jul 9, 2014
1 parent 96ae571 commit 0e278b3
Showing 1 changed file with 9 additions and 39 deletions.
48 changes: 9 additions & 39 deletions drivers/usb/host/fotg210-hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -5838,66 +5838,38 @@ 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);

fotg210->caps = hcd->regs;

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);
Expand All @@ -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;
Expand Down

0 comments on commit 0e278b3

Please sign in to comment.