Commit 96ae5713 authored by Himangi Saraogi's avatar Himangi Saraogi Committed by Greg Kroah-Hartman

uhci-platform: use devm_ioremap resource

This patch replaces the memory allocation using request_mem_region and
the ioremap by a single call to managed interface devm_ioremap_reource.
The corresponding calls to release_mem_region and iounmap in the probe
and release functions are now unnecessary and are removed. Also a label
is done away with and linux/device.h is added to make sure the devm_*()
outine declarations are unambiguously available.
Signed-off-by: default avatarHimangi Saraogi <himangi774@gmail.com>
Acked-by: default avatarJulia Lawall <julia.lawall@lip6.fr>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3e346d41
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
*/ */
#include <linux/of.h> #include <linux/of.h>
#include <linux/device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
static int uhci_platform_init(struct usb_hcd *hcd) static int uhci_platform_init(struct usb_hcd *hcd)
...@@ -88,33 +89,22 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev) ...@@ -88,33 +89,22 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev)
hcd->rsrc_start = res->start; hcd->rsrc_start = res->start;
hcd->rsrc_len = resource_size(res); hcd->rsrc_len = resource_size(res);
if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { hcd->regs = devm_ioremap_resource(&pdev->dev, res);
pr_err("%s: request_mem_region failed\n", __func__); if (IS_ERR(hcd->regs)) {
ret = -EBUSY; ret = PTR_ERR(hcd->regs);
goto err_rmr; goto err_rmr;
} }
hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
if (!hcd->regs) {
pr_err("%s: ioremap failed\n", __func__);
ret = -ENOMEM;
goto err_irq;
}
uhci = hcd_to_uhci(hcd); uhci = hcd_to_uhci(hcd);
uhci->regs = hcd->regs; uhci->regs = hcd->regs;
ret = usb_add_hcd(hcd, pdev->resource[1].start, IRQF_SHARED); ret = usb_add_hcd(hcd, pdev->resource[1].start, IRQF_SHARED);
if (ret) if (ret)
goto err_uhci; goto err_rmr;
device_wakeup_enable(hcd->self.controller); device_wakeup_enable(hcd->self.controller);
return 0; return 0;
err_uhci:
iounmap(hcd->regs);
err_irq:
release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
err_rmr: err_rmr:
usb_put_hcd(hcd); usb_put_hcd(hcd);
...@@ -126,8 +116,6 @@ static int uhci_hcd_platform_remove(struct platform_device *pdev) ...@@ -126,8 +116,6 @@ static int uhci_hcd_platform_remove(struct platform_device *pdev)
struct usb_hcd *hcd = platform_get_drvdata(pdev); struct usb_hcd *hcd = platform_get_drvdata(pdev);
usb_remove_hcd(hcd); usb_remove_hcd(hcd);
iounmap(hcd->regs);
release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
usb_put_hcd(hcd); usb_put_hcd(hcd);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment