forked from luck/tmp_suning_uos_patched
fotg210: Use managed interfaces for allocation of resources
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>
This commit is contained in:
parent
96ae571338
commit
0e278b3408
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user