summaryrefslogtreecommitdiff
path: root/drivers/mfd/davinci_voicecodec.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/davinci_voicecodec.c')
-rw-r--r--drivers/mfd/davinci_voicecodec.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/mfd/davinci_voicecodec.c b/drivers/mfd/davinci_voicecodec.c
index c60ab0c3c4db..b6e297363946 100644
--- a/drivers/mfd/davinci_voicecodec.c
+++ b/drivers/mfd/davinci_voicecodec.c
@@ -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;
}