diff options
author | Shuming Fan <shumingf@realtek.com> | 2021-02-08 17:40:42 -0600 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-02-10 17:16:29 +0000 |
commit | ae4fc532244b3bb4d86c397418d980b0c6be1dfd (patch) | |
tree | 755729a5a86c8233fedcd7989f87f7d4e78a79c8 /sound | |
parent | d40dac7ae8c0f213ac1da7896c35ddc2c58419ab (diff) | |
download | linux-stable-ae4fc532244b3bb4d86c397418d980b0c6be1dfd.tar.gz linux-stable-ae4fc532244b3bb4d86c397418d980b0c6be1dfd.tar.bz2 linux-stable-ae4fc532244b3bb4d86c397418d980b0c6be1dfd.zip |
ASoC: dapm: use component prefix when checking widget names
On a TigerLake SoundWire platform, we see these warnings:
[ 27.360086] rt5682 sdw:0:25d:5682:0: ASoC: DAPM unknown pin MICBIAS
[ 27.360092] rt5682 sdw:0:25d:5682:0: ASoC: DAPM unknown pin Vref2
This is root-caused to the addition of a component prefix in the
machine driver. The tests in soc-dapm should account for a prefix
instead of reporting an invalid issue.
Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Shuming Fan <shumingf@realtek.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210208234043.59750-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/soc-dapm.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 2b75d0139e47..b005f9eadd71 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -2528,9 +2528,20 @@ static struct snd_soc_dapm_widget *dapm_find_widget( { struct snd_soc_dapm_widget *w; struct snd_soc_dapm_widget *fallback = NULL; + char prefixed_pin[80]; + const char *pin_name; + const char *prefix = soc_dapm_prefix(dapm); + + if (prefix) { + snprintf(prefixed_pin, sizeof(prefixed_pin), "%s %s", + prefix, pin); + pin_name = prefixed_pin; + } else { + pin_name = pin; + } for_each_card_widgets(dapm->card, w) { - if (!strcmp(w->name, pin)) { + if (!strcmp(w->name, pin_name)) { if (w->dapm == dapm) return w; else |