diff options
author | Julia Lawall <Julia.Lawall@lip6.fr> | 2012-07-29 21:46:07 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-10 12:01:33 -0700 |
commit | f0675e2a99dd305114986d22e2572c72bd69804b (patch) | |
tree | f5693f2b27cf5120ab5145cbe5ecfb487557d9c5 /drivers/usb/host/ehci-cns3xxx.c | |
parent | 8ca41ae35f5567280eac787a9cc9bcd5988b9f82 (diff) | |
download | blackbird-op-linux-f0675e2a99dd305114986d22e2572c72bd69804b.tar.gz blackbird-op-linux-f0675e2a99dd305114986d22e2572c72bd69804b.zip |
drivers/usb/host/ehci-cns3xxx.c: use devm_ functions
The various devm_ functions allocate memory that is released when a driver
detaches. This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/ehci-cns3xxx.c')
-rw-r--r-- | drivers/usb/host/ehci-cns3xxx.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/drivers/usb/host/ehci-cns3xxx.c b/drivers/usb/host/ehci-cns3xxx.c index caaa3e5be334..d91708d2e729 100644 --- a/drivers/usb/host/ehci-cns3xxx.c +++ b/drivers/usb/host/ehci-cns3xxx.c @@ -105,27 +105,17 @@ static int cns3xxx_ehci_probe(struct platform_device *pdev) hcd->rsrc_start = res->start; hcd->rsrc_len = resource_size(res); - if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, - driver->description)) { - dev_dbg(dev, "controller already in use\n"); - retval = -EBUSY; - goto err1; - } - - hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); + hcd->regs = devm_request_and_ioremap(&pdev->dev, res); if (hcd->regs == NULL) { dev_dbg(dev, "error mapping memory\n"); retval = -EFAULT; - goto err2; + goto err1; } retval = usb_add_hcd(hcd, irq, IRQF_SHARED); if (retval == 0) return retval; - iounmap(hcd->regs); -err2: - release_mem_region(hcd->rsrc_start, hcd->rsrc_len); err1: usb_put_hcd(hcd); @@ -137,8 +127,6 @@ static int cns3xxx_ehci_remove(struct platform_device *pdev) struct usb_hcd *hcd = platform_get_drvdata(pdev); usb_remove_hcd(hcd); - iounmap(hcd->regs); - release_mem_region(hcd->rsrc_start, hcd->rsrc_len); /* * EHCI and OHCI share the same clock and power, |