diff options
author | Julia Lawall <Julia.Lawall@lip6.fr> | 2012-07-29 23:46:06 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-10 23:01:33 +0400 |
commit | 8ca41ae35f5567280eac787a9cc9bcd5988b9f82 (patch) | |
tree | e3c4d9f2c3adc6558e2c3d151da3db6458482efc /drivers/usb/host/ehci-au1xxx.c | |
parent | 979834313271203d1e6e84241cc3aca4503a3dbb (diff) | |
download | linux-8ca41ae35f5567280eac787a9cc9bcd5988b9f82.tar.xz |
drivers/usb/host/ehci-au1xxx.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-au1xxx.c')
-rw-r--r-- | drivers/usb/host/ehci-au1xxx.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/drivers/usb/host/ehci-au1xxx.c b/drivers/usb/host/ehci-au1xxx.c index cba10d625a5d..65c945eb4144 100644 --- a/drivers/usb/host/ehci-au1xxx.c +++ b/drivers/usb/host/ehci-au1xxx.c @@ -98,23 +98,17 @@ static int ehci_hcd_au1xxx_drv_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, hcd_name)) { - pr_debug("request_mem_region failed"); - ret = -EBUSY; - goto err1; - } - - hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); + hcd->regs = devm_request_and_ioremap(&pdev->dev, res); if (!hcd->regs) { - pr_debug("ioremap failed"); + pr_debug("devm_request_and_ioremap failed"); ret = -ENOMEM; - goto err2; + goto err1; } if (alchemy_usb_control(ALCHEMY_USB_EHCI0, 1)) { printk(KERN_INFO "%s: controller init failed!\n", pdev->name); ret = -ENODEV; - goto err3; + goto err1; } ret = usb_add_hcd(hcd, pdev->resource[1].start, @@ -125,10 +119,6 @@ static int ehci_hcd_au1xxx_drv_probe(struct platform_device *pdev) } alchemy_usb_control(ALCHEMY_USB_EHCI0, 0); -err3: - iounmap(hcd->regs); -err2: - release_mem_region(hcd->rsrc_start, hcd->rsrc_len); err1: usb_put_hcd(hcd); return ret; @@ -140,8 +130,6 @@ static int ehci_hcd_au1xxx_drv_remove(struct platform_device *pdev) usb_remove_hcd(hcd); alchemy_usb_control(ALCHEMY_USB_EHCI0, 0); - iounmap(hcd->regs); - release_mem_region(hcd->rsrc_start, hcd->rsrc_len); usb_put_hcd(hcd); platform_set_drvdata(pdev, NULL); |