aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/mxs/mxs-saif.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/mxs/mxs-saif.c')
-rw-r--r--sound/soc/mxs/mxs-saif.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c
index b3030718c228..aa037b292f3d 100644
--- a/sound/soc/mxs/mxs-saif.c
+++ b/sound/soc/mxs/mxs-saif.c
@@ -704,7 +704,7 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
704 return ret; 704 return ret;
705 } 705 }
706 706
707 saif->clk = clk_get(&pdev->dev, NULL); 707 saif->clk = devm_clk_get(&pdev->dev, NULL);
708 if (IS_ERR(saif->clk)) { 708 if (IS_ERR(saif->clk)) {
709 ret = PTR_ERR(saif->clk); 709 ret = PTR_ERR(saif->clk);
710 dev_err(&pdev->dev, "Cannot get the clock: %d\n", 710 dev_err(&pdev->dev, "Cannot get the clock: %d\n",
@@ -717,8 +717,7 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
717 saif->base = devm_request_and_ioremap(&pdev->dev, iores); 717 saif->base = devm_request_and_ioremap(&pdev->dev, iores);
718 if (!saif->base) { 718 if (!saif->base) {
719 dev_err(&pdev->dev, "ioremap failed\n"); 719 dev_err(&pdev->dev, "ioremap failed\n");
720 ret = -ENODEV; 720 return -ENODEV;
721 goto failed_get_resource;
722 } 721 }
723 722
724 dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0); 723 dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0);
@@ -731,7 +730,7 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
731 &saif->dma_param.chan_num); 730 &saif->dma_param.chan_num);
732 if (ret) { 731 if (ret) {
733 dev_err(&pdev->dev, "failed to get dma channel\n"); 732 dev_err(&pdev->dev, "failed to get dma channel\n");
734 goto failed_get_resource; 733 return ret;
735 } 734 }
736 } else { 735 } else {
737 saif->dma_param.chan_num = dmares->start; 736 saif->dma_param.chan_num = dmares->start;
@@ -742,7 +741,7 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
742 ret = saif->irq; 741 ret = saif->irq;
743 dev_err(&pdev->dev, "failed to get irq resource: %d\n", 742 dev_err(&pdev->dev, "failed to get irq resource: %d\n",
744 ret); 743 ret);
745 goto failed_get_resource; 744 return ret;
746 } 745 }
747 746
748 saif->dev = &pdev->dev; 747 saif->dev = &pdev->dev;
@@ -750,7 +749,7 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
750 "mxs-saif", saif); 749 "mxs-saif", saif);
751 if (ret) { 750 if (ret) {
752 dev_err(&pdev->dev, "failed to request irq\n"); 751 dev_err(&pdev->dev, "failed to request irq\n");
753 goto failed_get_resource; 752 return ret;
754 } 753 }
755 754
756 saif->dma_param.chan_irq = platform_get_irq(pdev, 1); 755 saif->dma_param.chan_irq = platform_get_irq(pdev, 1);
@@ -758,7 +757,7 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
758 ret = saif->dma_param.chan_irq; 757 ret = saif->dma_param.chan_irq;
759 dev_err(&pdev->dev, "failed to get dma irq resource: %d\n", 758 dev_err(&pdev->dev, "failed to get dma irq resource: %d\n",
760 ret); 759 ret);
761 goto failed_get_resource; 760 return ret;
762 } 761 }
763 762
764 platform_set_drvdata(pdev, saif); 763 platform_set_drvdata(pdev, saif);
@@ -766,7 +765,7 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
766 ret = snd_soc_register_dai(&pdev->dev, &mxs_saif_dai); 765 ret = snd_soc_register_dai(&pdev->dev, &mxs_saif_dai);
767 if (ret) { 766 if (ret) {
768 dev_err(&pdev->dev, "register DAI failed\n"); 767 dev_err(&pdev->dev, "register DAI failed\n");
769 goto failed_get_resource; 768 return ret;
770 } 769 }
771 770
772 ret = mxs_pcm_platform_register(&pdev->dev); 771 ret = mxs_pcm_platform_register(&pdev->dev);
@@ -779,19 +778,14 @@ static int __devinit mxs_saif_probe(struct platform_device *pdev)
779 778
780failed_pdev_alloc: 779failed_pdev_alloc:
781 snd_soc_unregister_dai(&pdev->dev); 780 snd_soc_unregister_dai(&pdev->dev);
782failed_get_resource:
783 clk_put(saif->clk);
784 781
785 return ret; 782 return ret;
786} 783}
787 784
788static int __devexit mxs_saif_remove(struct platform_device *pdev) 785static int __devexit mxs_saif_remove(struct platform_device *pdev)
789{ 786{
790 struct mxs_saif *saif = platform_get_drvdata(pdev);
791
792 mxs_pcm_platform_unregister(&pdev->dev); 787 mxs_pcm_platform_unregister(&pdev->dev);
793 snd_soc_unregister_dai(&pdev->dev); 788 snd_soc_unregister_dai(&pdev->dev);
794 clk_put(saif->clk);
795 789
796 return 0; 790 return 0;
797} 791}