|
@@ -329,9 +329,8 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
|
|
goto err_pm_disable;
|
|
goto err_pm_disable;
|
|
}
|
|
}
|
|
|
|
|
|
- ret = devm_snd_soc_register_component(&pdev->dev,
|
|
|
|
- &tegra20_spdif_component,
|
|
|
|
- &tegra20_spdif_dai, 1);
|
|
|
|
|
|
+ ret = snd_soc_register_component(&pdev->dev, &tegra20_spdif_component,
|
|
|
|
+ &tegra20_spdif_dai, 1);
|
|
if (ret) {
|
|
if (ret) {
|
|
dev_err(&pdev->dev, "Could not register DAI: %d\n", ret);
|
|
dev_err(&pdev->dev, "Could not register DAI: %d\n", ret);
|
|
ret = -ENOMEM;
|
|
ret = -ENOMEM;
|
|
@@ -341,11 +340,13 @@ static int tegra20_spdif_platform_probe(struct platform_device *pdev)
|
|
ret = tegra_pcm_platform_register(&pdev->dev);
|
|
ret = tegra_pcm_platform_register(&pdev->dev);
|
|
if (ret) {
|
|
if (ret) {
|
|
dev_err(&pdev->dev, "Could not register PCM: %d\n", ret);
|
|
dev_err(&pdev->dev, "Could not register PCM: %d\n", ret);
|
|
- return ret;
|
|
|
|
|
|
+ goto err_unregister_component;
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+err_unregister_component:
|
|
|
|
+ snd_soc_unregister_component(&pdev->dev);
|
|
err_suspend:
|
|
err_suspend:
|
|
if (!pm_runtime_status_suspended(&pdev->dev))
|
|
if (!pm_runtime_status_suspended(&pdev->dev))
|
|
tegra20_spdif_runtime_suspend(&pdev->dev);
|
|
tegra20_spdif_runtime_suspend(&pdev->dev);
|
|
@@ -364,6 +365,7 @@ static int tegra20_spdif_platform_remove(struct platform_device *pdev)
|
|
tegra20_spdif_runtime_suspend(&pdev->dev);
|
|
tegra20_spdif_runtime_suspend(&pdev->dev);
|
|
|
|
|
|
tegra_pcm_platform_unregister(&pdev->dev);
|
|
tegra_pcm_platform_unregister(&pdev->dev);
|
|
|
|
+ snd_soc_unregister_component(&pdev->dev);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|