ASoC: compress: Set reasonable compress id string
authorPeng Donglin <dolinux.peng@gmail.com>
Wed, 16 Aug 2017 14:47:53 +0000 (22:47 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 16 Aug 2017 14:52:58 +0000 (15:52 +0100)
For dynamic compress rtd, the codec_dai may not have any actual
meaning(like snd-soc-dummy-dai), so compress id can just use the
value of dai_link->stream_name. But for others, its codec_dai
has actual meaning, so compress id can include codec_dai name.

Signed-off-by: Peng Donglin <dolinux.peng@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-compress.c

index 6c867d50e036a72ef10a2b223b1b58acc2aae475..2cb8d3b55fbc210cd76d110df6d9fb11c976cb50 100644 (file)
@@ -737,9 +737,6 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
        }
 
        /* check client and interface hw capabilities */
-       snprintf(new_name, sizeof(new_name), "%s %s-%d",
-                       rtd->dai_link->stream_name, codec_dai->name, num);
-
        if (codec_dai->driver->playback.channels_min)
                playback = 1;
        if (codec_dai->driver->capture.channels_min)
@@ -758,7 +755,7 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
                return -EINVAL;
        }
 
-       if(playback)
+       if (playback)
                direction = SND_COMPRESS_PLAYBACK;
        else
                direction = SND_COMPRESS_CAPTURE;
@@ -794,19 +791,18 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
                else if (rtd->dai_link->dpcm_capture)
                        be_pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream->private_data = rtd;
                memcpy(compr->ops, &soc_compr_dyn_ops, sizeof(soc_compr_dyn_ops));
-       } else
+       } else {
+               snprintf(new_name, sizeof(new_name), "%s %s-%d",
+                       rtd->dai_link->stream_name, codec_dai->name, num);
+
                memcpy(compr->ops, &soc_compr_ops, sizeof(soc_compr_ops));
+       }
 
        /* Add copy callback for not memory mapped DSPs */
        if (platform->driver->compr_ops && platform->driver->compr_ops->copy)
                compr->ops->copy = soc_compr_copy;
 
        mutex_init(&compr->lock);
-
-       snprintf(new_name, sizeof(new_name), "%s %s-%d",
-                rtd->dai_link->stream_name,
-                rtd->codec_dai->name, num);
-
        ret = snd_compress_new(rtd->card->snd_card, num, direction,
                                new_name, compr);
        if (ret < 0) {