aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/imx/imx-ssi.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-25 06:17:24 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-25 06:17:24 -0500
commit2c54c1586c78775cfdfb071e68b27e14b668921f (patch)
treecf57390a0b82d2bd1ade5e5356434c66c39af38a /sound/soc/imx/imx-ssi.c
parentb26bb71f610f9b346203bff407e4278d98f9fe80 (diff)
parent8b6b30ab665d3bbb23180c39f6215e6f64516ed0 (diff)
Merge branch 'for-2.6.37' into for-2.6.38
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 ad21f814e6a1..30894ea7f333 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)
679 } 679 }
680 680
681 ssi->soc_platform_pdev_fiq = platform_device_alloc("imx-fiq-pcm-audio", pdev->id); 681 ssi->soc_platform_pdev_fiq = platform_device_alloc("imx-fiq-pcm-audio", pdev->id);
682 if (!ssi->soc_platform_pdev_fiq) 682 if (!ssi->soc_platform_pdev_fiq) {
683 ret = -ENOMEM;
683 goto failed_pdev_fiq_alloc; 684 goto failed_pdev_fiq_alloc;
685 }
686
684 platform_set_drvdata(ssi->soc_platform_pdev_fiq, ssi); 687 platform_set_drvdata(ssi->soc_platform_pdev_fiq, ssi);
685 ret = platform_device_add(ssi->soc_platform_pdev_fiq); 688 ret = platform_device_add(ssi->soc_platform_pdev_fiq);
686 if (ret) { 689 if (ret) {
@@ -689,8 +692,11 @@ static int imx_ssi_probe(struct platform_device *pdev)
689 } 692 }
690 693
691 ssi->soc_platform_pdev = platform_device_alloc("imx-pcm-audio", pdev->id); 694 ssi->soc_platform_pdev = platform_device_alloc("imx-pcm-audio", pdev->id);
692 if (!ssi->soc_platform_pdev) 695 if (!ssi->soc_platform_pdev) {
696 ret = -ENOMEM;
693 goto failed_pdev_alloc; 697 goto failed_pdev_alloc;
698 }
699
694 platform_set_drvdata(ssi->soc_platform_pdev, ssi); 700 platform_set_drvdata(ssi->soc_platform_pdev, ssi);
695 ret = platform_device_add(ssi->soc_platform_pdev); 701 ret = platform_device_add(ssi->soc_platform_pdev);
696 if (ret) { 702 if (ret) {
@@ -703,6 +709,7 @@ static int imx_ssi_probe(struct platform_device *pdev)
703failed_pdev_add: 709failed_pdev_add:
704 platform_device_put(ssi->soc_platform_pdev); 710 platform_device_put(ssi->soc_platform_pdev);
705failed_pdev_alloc: 711failed_pdev_alloc:
712 platform_device_del(ssi->soc_platform_pdev_fiq);
706failed_pdev_fiq_add: 713failed_pdev_fiq_add:
707 platform_device_put(ssi->soc_platform_pdev_fiq); 714 platform_device_put(ssi->soc_platform_pdev_fiq);
708failed_pdev_fiq_alloc: 715failed_pdev_fiq_alloc:
@@ -726,8 +733,8 @@ static int __devexit imx_ssi_remove(struct platform_device *pdev)
726 struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 733 struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
727 struct imx_ssi *ssi = platform_get_drvdata(pdev); 734 struct imx_ssi *ssi = platform_get_drvdata(pdev);
728 735
729 platform_device_del(ssi->soc_platform_pdev); 736 platform_device_unregister(ssi->soc_platform_pdev);
730 platform_device_put(ssi->soc_platform_pdev); 737 platform_device_unregister(ssi->soc_platform_pdev_fiq);
731 738
732 snd_soc_unregister_dai(&pdev->dev); 739 snd_soc_unregister_dai(&pdev->dev);
733 740