OSDN Git Service

ASoC: Intel: boards: max98373: get dapm from cpu_dai
authorBard Liao <yung-chuan.liao@linux.intel.com>
Mon, 8 Feb 2021 23:40:43 +0000 (17:40 -0600)
committerMark Brown <broonie@kernel.org>
Wed, 10 Feb 2021 17:16:30 +0000 (17:16 +0000)
There is a prefix on max98373 codec, and the prefix will be added to
the pin name However, there is no prefix on the "Right Spk" and "Left
Spk" widgets.

To avoid getting a redundant prefix, we should get dapm from cpu_dai
component.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210208234043.59750-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_maxim_common.c

index c2a9757..437d205 100644 (file)
@@ -63,6 +63,7 @@ int max98373_trigger(struct snd_pcm_substream *substream, int cmd)
 {
        struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
        struct snd_soc_dai *codec_dai;
+       struct snd_soc_dai *cpu_dai;
        int j;
        int ret = 0;
 
@@ -70,10 +71,10 @@ int max98373_trigger(struct snd_pcm_substream *substream, int cmd)
        if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
                return 0;
 
+       cpu_dai = asoc_rtd_to_cpu(rtd, 0);
        for_each_rtd_codec_dais(rtd, j, codec_dai) {
-               struct snd_soc_component *component = codec_dai->component;
                struct snd_soc_dapm_context *dapm =
-                               snd_soc_component_get_dapm(component);
+                               snd_soc_component_get_dapm(cpu_dai->component);
                char pin_name[MAX_98373_PIN_NAME];
 
                snprintf(pin_name, ARRAY_SIZE(pin_name), "%s Spk",