ASoC: soc-utils: respawn dummy Platform
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 28 Jun 2019 01:50:04 +0000 (10:50 +0900)
committerMark Brown <broonie@kernel.org>
Fri, 28 Jun 2019 14:21:04 +0000 (15:21 +0100)
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>
sound/soc/soc-utils.c

index f67e715a9f4259e8860b68413c7859931db3cc24..e3b9dd634c6db37506b94527411f7d1c8398ab9b 100644 (file)
@@ -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;
 }