aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/au1x
diff options
context:
space:
mode:
authorJulia Lawall <julia.lawall@lip6.fr>2011-12-29 11:51:28 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-01-02 08:08:23 -0500
commitbe547dd1727fce22ec001006ea4da169df32b6c6 (patch)
tree18e5803753f95ca7e9c7b5db3025b2de9d22b3b3 /sound/soc/au1x
parent46c3a02cc93083cb946872896428798cfb8609c0 (diff)
ASoC: dbdma2.c: use devm_ functions
The various devm_ functions allocate memory that is released when a driver detaches. This patch uses devm_kzalloc, devm_request_mem_region and devm_ioremap 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: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/au1x')
-rw-r--r--sound/soc/au1x/dbdma2.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/sound/soc/au1x/dbdma2.c b/sound/soc/au1x/dbdma2.c
index 92bc1b0346fa..8372cd35f0d6 100644
--- a/sound/soc/au1x/dbdma2.c
+++ b/sound/soc/au1x/dbdma2.c
@@ -350,27 +350,21 @@ static struct snd_soc_platform_driver au1xpsc_soc_platform = {
350static int __devinit au1xpsc_pcm_drvprobe(struct platform_device *pdev) 350static int __devinit au1xpsc_pcm_drvprobe(struct platform_device *pdev)
351{ 351{
352 struct au1xpsc_audio_dmadata *dmadata; 352 struct au1xpsc_audio_dmadata *dmadata;
353 int ret;
354 353
355 dmadata = kzalloc(2 * sizeof(struct au1xpsc_audio_dmadata), GFP_KERNEL); 354 dmadata = devm_kzalloc(&pdev->dev,
355 2 * sizeof(struct au1xpsc_audio_dmadata),
356 GFP_KERNEL);
356 if (!dmadata) 357 if (!dmadata)
357 return -ENOMEM; 358 return -ENOMEM;
358 359
359 platform_set_drvdata(pdev, dmadata); 360 platform_set_drvdata(pdev, dmadata);
360 361
361 ret = snd_soc_register_platform(&pdev->dev, &au1xpsc_soc_platform); 362 return snd_soc_register_platform(&pdev->dev, &au1xpsc_soc_platform);
362 if (ret)
363 kfree(dmadata);
364
365 return ret;
366} 363}
367 364
368static int __devexit au1xpsc_pcm_drvremove(struct platform_device *pdev) 365static int __devexit au1xpsc_pcm_drvremove(struct platform_device *pdev)
369{ 366{
370 struct au1xpsc_audio_dmadata *dmadata = platform_get_drvdata(pdev);
371
372 snd_soc_unregister_platform(&pdev->dev); 367 snd_soc_unregister_platform(&pdev->dev);
373 kfree(dmadata);
374 368
375 return 0; 369 return 0;
376} 370}