[PATCH v6 11/22] mfd: omap-usb-host: Use devm_kzalloc() and devm_request_and_ioremap()

2013-01-16 Thread Roger Quadros
Use devm_ variants of kzalloc and ioremap. Also clean up error path.

Signed-off-by: Roger Quadros rog...@ti.com
---
 drivers/mfd/omap-usb-host.c |   38 +++---
 1 files changed, 11 insertions(+), 27 deletions(-)

diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
index 061366d..0f190b6 100644
--- a/drivers/mfd/omap-usb-host.c
+++ b/drivers/mfd/omap-usb-host.c
@@ -461,15 +461,20 @@ static int usbhs_omap_probe(struct platform_device *pdev)
 
if (!pdata) {
dev_err(dev, Missing platform data\n);
-   ret = -ENOMEM;
-   goto end_probe;
+   return -ENODEV;
}
 
-   omap = kzalloc(sizeof(*omap), GFP_KERNEL);
+   omap = devm_kzalloc(dev, sizeof(*omap), GFP_KERNEL);
if (!omap) {
dev_err(dev, Memory allocation failed\n);
-   ret = -ENOMEM;
-   goto end_probe;
+   return -ENOMEM;
+   }
+
+   res = platform_get_resource_byname(pdev, IORESOURCE_MEM, uhh);
+   omap-uhh_base = devm_request_and_ioremap(dev, res);
+   if (!omap-uhh_base) {
+   dev_err(dev, Resource request/ioremap failed\n);
+   return -ENOMEM;
}
 
spin_lock_init(omap-lock);
@@ -568,20 +573,6 @@ static int usbhs_omap_probe(struct platform_device *pdev)
failed error:%d\n, ret);
}
 
-   res = platform_get_resource_byname(pdev, IORESOURCE_MEM, uhh);
-   if (!res) {
-   dev_err(dev, UHH EHCI get resource failed\n);
-   ret = -ENODEV;
-   goto err_init_60m_fclk;
-   }
-
-   omap-uhh_base = ioremap(res-start, resource_size(res));
-   if (!omap-uhh_base) {
-   dev_err(dev, UHH ioremap failed\n);
-   ret = -ENOMEM;
-   goto err_init_60m_fclk;
-   }
-
platform_set_drvdata(pdev, omap);
 
omap_usbhs_init(dev);
@@ -591,13 +582,10 @@ static int usbhs_omap_probe(struct platform_device *pdev)
goto err_alloc;
}
 
-   goto end_probe;
+   return 0;
 
 err_alloc:
omap_usbhs_deinit(pdev-dev);
-   iounmap(omap-uhh_base);
-
-err_init_60m_fclk:
clk_put(omap-init_60m_fclk);
 
 err_usbhost_p2_fck:
@@ -621,9 +609,7 @@ err_utmi_p1_fck:
 err_end:
clk_put(omap-ehci_logic_fck);
pm_runtime_disable(dev);
-   kfree(omap);
 
-end_probe:
return ret;
 }
 
@@ -638,7 +624,6 @@ static int usbhs_omap_remove(struct platform_device *pdev)
struct usbhs_hcd_omap *omap = platform_get_drvdata(pdev);
 
omap_usbhs_deinit(pdev-dev);
-   iounmap(omap-uhh_base);
clk_put(omap-init_60m_fclk);
clk_put(omap-usbhost_p2_fck);
clk_put(omap-usbhost_p1_fck);
@@ -648,7 +633,6 @@ static int usbhs_omap_remove(struct platform_device *pdev)
clk_put(omap-utmi_p1_fck);
clk_put(omap-ehci_logic_fck);
pm_runtime_disable(pdev-dev);
-   kfree(omap);
 
return 0;
 }
-- 
1.7.4.1

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v6 11/22] mfd: omap-usb-host: Use devm_kzalloc() and devm_request_and_ioremap()

2013-01-16 Thread Sergei Shtylyov
Hello.

On 01/16/2013 05:43 PM, Roger Quadros wrote:

 Use devm_ variants of kzalloc and ioremap. Also clean up error path.

 Signed-off-by: Roger Quadros rog...@ti.com
[...]

 diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
 index 061366d..0f190b6 100644
 --- a/drivers/mfd/omap-usb-host.c
 +++ b/drivers/mfd/omap-usb-host.c
 @@ -461,15 +461,20 @@ static int usbhs_omap_probe(struct platform_device 
 *pdev)
[...]
 + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, uhh);
 + omap-uhh_base = devm_request_and_ioremap(dev, res);
 + if (!omap-uhh_base) {
 + dev_err(dev, Resource request/ioremap failed\n);
 + return -ENOMEM;

   Should be -EADDRNOTAVAIL according to the comment to
devm_request_and_ioremap()...

WBR, Sergei

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html