summaryrefslogtreecommitdiffstats
path: root/sound/soc/imx/imx-ssi.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-11-27 12:42:15 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-11-27 12:42:15 -0800
commit0f639a3c5ca63dd76ee07de9b02ebf0178ce9a17 (patch)
treed71795e238dcf18c1db2b37023dc4252b1f5f5f3 /sound/soc/imx/imx-ssi.c
parent19650e8580987c0ffabc2fe2cbc16b944789df8b (diff)
parent37fa84d8e647e584bf1b71bdff0330049e34f5ef (diff)
downloadtalos-op-linux-0f639a3c5ca63dd76ee07de9b02ebf0178ce9a17.tar.gz
talos-op-linux-0f639a3c5ca63dd76ee07de9b02ebf0178ce9a17.zip
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (30 commits) ALSA: hda - Use ALC_INIT_DEFAULT for really default initialization ASoC: Fix resource reclaim for osk5912 ASoC: tlv320aic3x - fix variable may be used uninitialized warning ASoC: davinci-vcif - fix a memory leak ASoC: phycore-ac97: fix resource leak ASoC: imx-ssi: fix resource leak ASoC: simone: fix resource leak in simone_init error path ASoC: sam9g20_wm8731: fix resource leak in at91sam9g20ek_init error path ASoC: snd-soc-afeb9260: remove unneeded platform_device_del in error path ASoC: pcm030-audio-fabric: fix resource leak in pcm030_fabric_init error path ASoC: efika-audio-fabric: fix resource leak in efika_fabric_init error path ASoC: Call snd_soc_unregister_dais instead of snd_soc_unregister_dai in sh4_soc_dai_remove ASoC: fix SND_PXA2XX_LIB Kconfig warning ALSA: hda - Fix ALC660-VD/ALC861-VD capture/playback mixers ALSA: HDA: Add an extra DAC for Realtek ALC887-VD ASoC: nuc900-ac97: fix a memory leak ASoC: Return proper error for omap3pandora_soc_init ASoC: wm8961 - clear WM8961_MCLKDIV bit for freq <= 16500000 ASoC: wm8961 - clear WM8961_DACSLOPE bit for normal mode ALSA: hda - Fix Acer 7730G support ...
Diffstat (limited to 'sound/soc/imx/imx-ssi.c')
-rw-r--r--sound/soc/imx/imx-ssi.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
index d2d98c75ee8a..390b6ffc2658 100644
--- a/sound/soc/imx/imx-ssi.c
+++ b/sound/soc/imx/imx-ssi.c
@@ -679,8 +679,11 @@ static int imx_ssi_probe(struct platform_device *pdev)
}
ssi->soc_platform_pdev_fiq = platform_device_alloc("imx-fiq-pcm-audio", pdev->id);
- if (!ssi->soc_platform_pdev_fiq)
+ if (!ssi->soc_platform_pdev_fiq) {
+ ret = -ENOMEM;
goto failed_pdev_fiq_alloc;
+ }
+
platform_set_drvdata(ssi->soc_platform_pdev_fiq, ssi);
ret = platform_device_add(ssi->soc_platform_pdev_fiq);
if (ret) {
@@ -689,8 +692,11 @@ static int imx_ssi_probe(struct platform_device *pdev)
}
ssi->soc_platform_pdev = platform_device_alloc("imx-pcm-audio", pdev->id);
- if (!ssi->soc_platform_pdev)
+ if (!ssi->soc_platform_pdev) {
+ ret = -ENOMEM;
goto failed_pdev_alloc;
+ }
+
platform_set_drvdata(ssi->soc_platform_pdev, ssi);
ret = platform_device_add(ssi->soc_platform_pdev);
if (ret) {
@@ -703,6 +709,7 @@ static int imx_ssi_probe(struct platform_device *pdev)
failed_pdev_add:
platform_device_put(ssi->soc_platform_pdev);
failed_pdev_alloc:
+ platform_device_del(ssi->soc_platform_pdev_fiq);
failed_pdev_fiq_add:
platform_device_put(ssi->soc_platform_pdev_fiq);
failed_pdev_fiq_alloc:
@@ -726,8 +733,8 @@ static int __devexit imx_ssi_remove(struct platform_device *pdev)
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
struct imx_ssi *ssi = platform_get_drvdata(pdev);
- platform_device_del(ssi->soc_platform_pdev);
- platform_device_put(ssi->soc_platform_pdev);
+ platform_device_unregister(ssi->soc_platform_pdev);
+ platform_device_unregister(ssi->soc_platform_pdev_fiq);
snd_soc_unregister_dai(&pdev->dev);
OpenPOWER on IntegriCloud