Merge remote-tracking branch 'asoc/topic/dma' into asoc-next
[pandora-kernel.git] / sound / soc / tegra / tegra20_spdif.c
index b7b4743..5eaa12c 100644 (file)
@@ -183,6 +183,10 @@ static struct snd_soc_dai_driver tegra20_spdif_dai = {
        .ops = &tegra20_spdif_dai_ops,
 };
 
+static const struct snd_soc_component_driver tegra20_spdif_component = {
+       .name           = DRV_NAME,
+};
+
 static bool tegra20_spdif_wr_rd_reg(struct device *dev, unsigned int reg)
 {
        switch (reg) {
@@ -330,7 +334,8 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
                        goto err_pm_disable;
        }
 
-       ret = snd_soc_register_dai(&pdev->dev, &tegra20_spdif_dai);
+       ret = snd_soc_register_component(&pdev->dev, &tegra20_spdif_component,
+                                  &tegra20_spdif_dai, 1);
        if (ret) {
                dev_err(&pdev->dev, "Could not register DAI: %d\n", ret);
                ret = -ENOMEM;
@@ -340,13 +345,13 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
        ret = tegra_pcm_platform_register(&pdev->dev);
        if (ret) {
                dev_err(&pdev->dev, "Could not register PCM: %d\n", ret);
-               goto err_unregister_dai;
+               goto err_unregister_component;
        }
 
        return 0;
 
-err_unregister_dai:
-       snd_soc_unregister_dai(&pdev->dev);
+err_unregister_component:
+       snd_soc_unregister_component(&pdev->dev);
 err_suspend:
        if (!pm_runtime_status_suspended(&pdev->dev))
                tegra20_spdif_runtime_suspend(&pdev->dev);
@@ -367,7 +372,7 @@ static int tegra20_spdif_platform_remove(struct platform_device *pdev)
                tegra20_spdif_runtime_suspend(&pdev->dev);
 
        tegra_pcm_platform_unregister(&pdev->dev);
-       snd_soc_unregister_dai(&pdev->dev);
+       snd_soc_unregister_component(&pdev->dev);
 
        clk_put(spdif->clk_spdif_out);