summaryrefslogtreecommitdiff
path: root/sound/soc
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2019-06-28 10:50:04 +0900
committerMark Brown <broonie@kernel.org>2019-06-28 15:21:04 +0100
commitaff50895269f567d1b30c688ce8d610542991b30 (patch)
treefb9540a7d6f3cf05342dab952d98ef2d89482209 /sound/soc
parent6c10da54f3714afe26a2a205d0713d4841762d12 (diff)
ASoC: soc-utils: respawn dummy Platform
commit 64ee5067cf64 ("ASoC: soc-utils: remove dummy Platform") removed dummy Platform from ALSA SoC, but it is over-kill. This patch respawn it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/soc-utils.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/sound/soc/soc-utils.c b/sound/soc/soc-utils.c
index f67e715a9f42..e3b9dd634c6d 100644
--- a/sound/soc/soc-utils.c
+++ b/sound/soc/soc-utils.c
@@ -262,6 +262,26 @@ static const struct snd_pcm_hardware dummy_dma_hardware = {
.periods_max = 128,
};
+static int dummy_dma_open(struct snd_pcm_substream *substream)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+
+ /* BE's dont need dummy params */
+ if (!rtd->dai_link->no_pcm)
+ snd_soc_set_runtime_hwparams(substream, &dummy_dma_hardware);
+
+ return 0;
+}
+
+static const struct snd_pcm_ops snd_dummy_dma_ops = {
+ .open = dummy_dma_open,
+ .ioctl = snd_pcm_lib_ioctl,
+};
+
+static const struct snd_soc_component_driver dummy_platform = {
+ .ops = &snd_dummy_dma_ops,
+};
+
static const struct snd_soc_component_driver dummy_codec = {
.idle_bias_on = 1,
.use_pmdown_time = 1,
@@ -319,6 +339,11 @@ static int snd_soc_dummy_probe(struct platform_device *pdev)
ret = devm_snd_soc_register_component(&pdev->dev,
&dummy_codec, &dummy_dai, 1);
+ if (ret < 0)
+ return ret;
+
+ ret = devm_snd_soc_register_component(&pdev->dev, &dummy_platform,
+ NULL, 0);
return ret;
}