diff --git a/sound/soc/au1x/dma.c b/sound/soc/au1x/dma.c index c4017bd56ab8..0a91b186a86f 100644 --- a/sound/soc/au1x/dma.c +++ b/sound/soc/au1x/dma.c @@ -325,27 +325,19 @@ static struct snd_soc_platform_driver alchemy_pcm_soc_platform = { static int __devinit alchemy_pcm_drvprobe(struct platform_device *pdev) { struct alchemy_pcm_ctx *ctx; - int ret; - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); if (!ctx) return -ENOMEM; platform_set_drvdata(pdev, ctx); - ret = snd_soc_register_platform(&pdev->dev, &alchemy_pcm_soc_platform); - if (ret) - kfree(ctx); - - return ret; + return snd_soc_register_platform(&pdev->dev, &alchemy_pcm_soc_platform); } static int __devexit alchemy_pcm_drvremove(struct platform_device *pdev) { - struct alchemy_pcm_ctx *ctx = platform_get_drvdata(pdev); - snd_soc_unregister_platform(&pdev->dev); - kfree(ctx); return 0; }