summaryrefslogtreecommitdiff
path: root/sound/soc/soc-component.c
diff options
context:
space:
mode:
authorJerome Brunet <jbrunet@baylibre.com>2020-07-23 17:20:20 +0300
committerMark Brown <broonie@kernel.org>2020-07-24 17:22:32 +0300
commitcc4d8cebbf2a1239aab71a8077fbe20f24ec2165 (patch)
tree335be060f9483a2490cc0b6138702ad7340d5133 /sound/soc/soc-component.c
parentd1e2a97b36131607d33ac3d02e569b494900f1bd (diff)
downloadlinux-cc4d8cebbf2a1239aab71a8077fbe20f24ec2165.tar.xz
ASoC: soc-component: don't report of_xlate_dai_name failures
With commit e2329eeba45f ("ASoC: soc-component: add soc_component_err()") every error different for ENOTSUPP or EPROBE_DEFER will log an error. However, as explained in snd_soc_get_dai_name(), this callback may error to indicate that the DAI is not matched by the component tested. If the device provides other components, those may still match. Logging an error in this case is misleading. Don't use soc_component_ret() in snd_soc_component_of_xlate_dai_name() to avoid spamming the log. Fixes: e2329eeba45f ("ASoC: soc-component: add soc_component_err()") Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/20200723142020.1338740-1-jbrunet@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-component.c')
-rw-r--r--sound/soc/soc-component.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index c1b799f98460..dcc89fa8913a 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -344,13 +344,15 @@ int snd_soc_component_of_xlate_dai_name(struct snd_soc_component *component,
struct of_phandle_args *args,
const char **dai_name)
{
- int ret = -ENOTSUPP;
-
if (component->driver->of_xlate_dai_name)
- ret = component->driver->of_xlate_dai_name(component,
- args, dai_name);
-
- return soc_component_ret(component, ret);
+ return component->driver->of_xlate_dai_name(component,
+ args, dai_name);
+ /*
+ * Don't use soc_component_ret here because we may not want to report
+ * the error just yet. If a device has more than one component, the
+ * first may not match and we don't want spam the log with this.
+ */
+ return -ENOTSUPP;
}
void snd_soc_component_setup_regmap(struct snd_soc_component *component)