mfd: davinci_voicecodec: Convert to managed resources for allocating memory
authorLee Jones <lee.jones@linaro.org>
Thu, 23 May 2013 15:25:11 +0000 (16:25 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 13 Jun 2013 10:11:42 +0000 (12:11 +0200)
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/davinci_voicecodec.c

index c60ab0c..b6e2973 100644 (file)
@@ -50,7 +50,8 @@ static int __init davinci_vc_probe(struct platform_device *pdev)
        struct mfd_cell *cell = NULL;
        int ret;
 
-       davinci_vc = kzalloc(sizeof(struct davinci_vc), GFP_KERNEL);
+       davinci_vc = devm_kzalloc(&pdev->dev,
+                                 sizeof(struct davinci_vc), GFP_KERNEL);
        if (!davinci_vc) {
                dev_dbg(&pdev->dev,
                            "could not allocate memory for private data\n");
@@ -61,8 +62,7 @@ static int __init davinci_vc_probe(struct platform_device *pdev)
        if (IS_ERR(davinci_vc->clk)) {
                dev_dbg(&pdev->dev,
                            "could not get the clock for voice codec\n");
-               ret = -ENODEV;
-               goto fail1;
+               return -ENODEV;
        }
        clk_enable(davinci_vc->clk);
 
@@ -145,8 +145,6 @@ fail2:
        clk_disable(davinci_vc->clk);
        clk_put(davinci_vc->clk);
        davinci_vc->clk = NULL;
-fail1:
-       kfree(davinci_vc);
 
        return ret;
 }
@@ -164,8 +162,6 @@ static int davinci_vc_remove(struct platform_device *pdev)
        clk_put(davinci_vc->clk);
        davinci_vc->clk = NULL;
 
-       kfree(davinci_vc);
-
        return 0;
 }