diff options
author | Liam Girdwood <lrg@ti.com> | 2012-01-09 07:36:24 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-01-20 08:58:27 -0500 |
commit | 7aca69f9fe8f04ca37a01e2540960c53b24e3223 (patch) | |
tree | 97e6b1f4b6be7059fb2a9d7a1b4ef4063c54ea67 /sound/soc/soc-utils.c | |
parent | 08656910bb80882aaad739faea6dac3a0818f71c (diff) |
ASoC: utils - Add support for a dummy codec driver.
This is useful to create dummy codec devices where we need to have some
DAI links without a real Codec. e.g. could be used to represent dumb FM,
MODEM, etc
This is also used by dynamic PCM for DAI links that have no codec.
Signed-off-by: Liam Girdwood <lrg@ti.com>
[Fixed the indentation -- broonie]
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/soc-utils.c')
-rw-r--r-- | sound/soc/soc-utils.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/sound/soc/soc-utils.c b/sound/soc/soc-utils.c index 4220bb0f2730..60053709e417 100644 --- a/sound/soc/soc-utils.c +++ b/sound/soc/soc-utils.c | |||
@@ -89,14 +89,32 @@ static struct snd_soc_platform_driver dummy_platform = { | |||
89 | .ops = &dummy_dma_ops, | 89 | .ops = &dummy_dma_ops, |
90 | }; | 90 | }; |
91 | 91 | ||
92 | static struct snd_soc_codec_driver dummy_codec; | ||
93 | static struct snd_soc_dai_driver dummy_dai = { | ||
94 | .name = "snd-soc-dummy-dai", | ||
95 | }; | ||
96 | |||
92 | static __devinit int snd_soc_dummy_probe(struct platform_device *pdev) | 97 | static __devinit int snd_soc_dummy_probe(struct platform_device *pdev) |
93 | { | 98 | { |
94 | return snd_soc_register_platform(&pdev->dev, &dummy_platform); | 99 | int ret; |
100 | |||
101 | ret = snd_soc_register_codec(&pdev->dev, &dummy_codec, &dummy_dai, 1); | ||
102 | if (ret < 0) | ||
103 | return ret; | ||
104 | |||
105 | ret = snd_soc_register_platform(&pdev->dev, &dummy_platform); | ||
106 | if (ret < 0) { | ||
107 | snd_soc_unregister_codec(&pdev->dev); | ||
108 | return ret; | ||
109 | } | ||
110 | |||
111 | return ret; | ||
95 | } | 112 | } |
96 | 113 | ||
97 | static __devexit int snd_soc_dummy_remove(struct platform_device *pdev) | 114 | static __devexit int snd_soc_dummy_remove(struct platform_device *pdev) |
98 | { | 115 | { |
99 | snd_soc_unregister_platform(&pdev->dev); | 116 | snd_soc_unregister_platform(&pdev->dev); |
117 | snd_soc_unregister_codec(&pdev->dev); | ||
100 | 118 | ||
101 | return 0; | 119 | return 0; |
102 | } | 120 | } |