[PATCH] ASoC: reduce verbosity of error messages for sof-dai and sof-link

Recent changes result in multiple dmesg traces such as:
[ 14.410435] Audio Port: ASoC: error at snd_soc_link_startup on Audio Port: 1
[ 14.410446] sst-mfld-platform sst-mfld-platform: ASoC: error at snd_soc_dai_startup on media-cpu-dai: 1
These messages are not really errors, when dai and dai-link callbacks return the value of e.g. snd_pcm_hw_constraint_single() the result is "Positive if the value is changed, zero if it's not changed, or a negative error code"
Add a simple test to only log errors when the result is negative.
Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com --- sound/soc/soc-dai.c | 7 ++++--- sound/soc/soc-link.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c index 2c6ac3b0afa5..6a0e7560bacc 100644 --- a/sound/soc/soc-dai.c +++ b/sound/soc/soc-dai.c @@ -20,9 +20,10 @@ static inline int _soc_dai_ret(struct snd_soc_dai *dai, case 0: break; default: - dev_err(dai->dev, - "ASoC: error at %s on %s: %d\n", - func, dai->name, ret); + if (ret < 0) + dev_err(dai->dev, + "ASoC: error at %s on %s: %d\n", + func, dai->name, ret); }
return ret; diff --git a/sound/soc/soc-link.c b/sound/soc/soc-link.c index 248e1be4e1eb..ff053d4c1a49 100644 --- a/sound/soc/soc-link.c +++ b/sound/soc/soc-link.c @@ -18,9 +18,10 @@ static inline int _soc_link_ret(struct snd_soc_pcm_runtime *rtd, case 0: break; default: - dev_err(rtd->dev, - "ASoC: error at %s on %s: %d\n", - func, rtd->dai_link->name, ret); + if (ret < 0) + dev_err(rtd->dev, + "ASoC: error at %s on %s: %d\n", + func, rtd->dai_link->name, ret); }
return ret;
base-commit: 4a0434502191347ba8f99468f2fb2cdddc20d381

Hi Pierre-Louis
Recent changes result in multiple dmesg traces such as:
[ 14.410435] Audio Port: ASoC: error at snd_soc_link_startup on Audio Port: 1
[ 14.410446] sst-mfld-platform sst-mfld-platform: ASoC: error at snd_soc_dai_startup on media-cpu-dai: 1
These messages are not really errors, when dai and dai-link callbacks return the value of e.g. snd_pcm_hw_constraint_single() the result is "Positive if the value is changed, zero if it's not changed, or a negative error code"
Add a simple test to only log errors when the result is negative.
Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
Thank you for pointing it. Some functions which has above rule isn't use soc_xxx_ret() actually. Anyway, more simply, how about this ?
---------- diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c index ae8b2c93cb66..da83059faf4e 100644 --- a/sound/soc/soc-dai.c +++ b/sound/soc/soc-dai.c @@ -14,10 +14,14 @@ static inline int _soc_dai_ret(struct snd_soc_dai *dai, const char *func, int ret) { + /* Positive, Zero are not error */ + if (ret >= 0) + return ret; + + /* Negative might be error */ switch (ret) { case -EPROBE_DEFER: case -ENOTSUPP: - case 0: break; default: dev_err(dai->dev, ----------
Thank you for your help !!
Best regards --- Kuninori Morimoto

On 5/29/20 1:32 AM, Kuninori Morimoto wrote:
Hi Pierre-Louis
Recent changes result in multiple dmesg traces such as:
[ 14.410435] Audio Port: ASoC: error at snd_soc_link_startup on Audio Port: 1
[ 14.410446] sst-mfld-platform sst-mfld-platform: ASoC: error at snd_soc_dai_startup on media-cpu-dai: 1
These messages are not really errors, when dai and dai-link callbacks return the value of e.g. snd_pcm_hw_constraint_single() the result is "Positive if the value is changed, zero if it's not changed, or a negative error code"
Add a simple test to only log errors when the result is negative.
Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
Thank you for pointing it. Some functions which has above rule isn't use soc_xxx_ret() actually. Anyway, more simply, how about this ?
Sounds good, will send a v2 with your suggestion.
diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c index ae8b2c93cb66..da83059faf4e 100644 --- a/sound/soc/soc-dai.c +++ b/sound/soc/soc-dai.c @@ -14,10 +14,14 @@ static inline int _soc_dai_ret(struct snd_soc_dai *dai, const char *func, int ret) {
- /* Positive, Zero are not error */
- if (ret >= 0)
return ret;
- /* Negative might be error */ switch (ret) { case -EPROBE_DEFER: case -ENOTSUPP:
- case 0: break; default: dev_err(dai->dev,
Thank you for your help !!
Best regards
Kuninori Morimoto
participants (2)
-
Kuninori Morimoto
-
Pierre-Louis Bossart