ASoC: soc-pcm.c: add soc_pcm_ret()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 30 Aug 2022 03:17:12 +0000 (03:17 +0000)
committerDom Cobley <popcornmix@gmail.com>
Tue, 6 Dec 2022 16:26:27 +0000 (16:26 +0000)
commit 041107289c5cebb0693a55c432ab50862a450476 upstream.

Current soc-pcm.c has many similar code for error case.
This patch adds soc_pcm_ret() and share the code and error message.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87r10y4dzb.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-pcm.c

index f6dc71e..3c6cbdb 100644 (file)
 #include <sound/soc-link.h>
 #include <sound/initval.h>
 
+#define soc_pcm_ret(rtd, ret) _soc_pcm_ret(rtd, __func__, ret)
+static inline int _soc_pcm_ret(struct snd_soc_pcm_runtime *rtd,
+                              const char *func, int ret)
+{
+       /* Positive, Zero values are not errors */
+       if (ret >= 0)
+               return ret;
+
+       /* Negative values might be errors */
+       switch (ret) {
+       case -EPROBE_DEFER:
+       case -ENOTSUPP:
+               break;
+       default:
+               dev_err(rtd->dev,
+                       "ASoC: error at %s on %s: %d\n",
+                       func, rtd->dai_link->name, ret);
+       }
+
+       return ret;
+}
+
 #define DPCM_MAX_BE_USERS      8
 
 static inline const char *soc_cpu_dai_name(struct snd_soc_pcm_runtime *rtd)
@@ -788,12 +810,10 @@ dynamic:
 err:
        mutex_unlock(&rtd->card->pcm_mutex);
 pm_err:
-       if (ret < 0) {
+       if (ret < 0)
                soc_pcm_clean(substream, 1);
-               dev_err(rtd->dev, "%s() failed (%d)", __func__, ret);
-       }
 
-       return ret;
+       return soc_pcm_ret(rtd, ret);
 }
 
 static void codec2codec_close_delayed_work(struct snd_soc_pcm_runtime *rtd)
@@ -847,10 +867,7 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream)
 out:
        mutex_unlock(&rtd->card->pcm_mutex);
 
-       if (ret < 0)
-               dev_err(rtd->dev, "ASoC: %s() failed (%d)\n", __func__, ret);
-
-       return ret;
+       return soc_pcm_ret(rtd, ret);
 }
 
 static void soc_pcm_codec_params_fixup(struct snd_pcm_hw_params *params,
@@ -999,12 +1016,10 @@ static int soc_pcm_hw_params(struct snd_pcm_substream *substream,
 out:
        mutex_unlock(&rtd->card->pcm_mutex);
 
-       if (ret < 0) {
+       if (ret < 0)
                soc_pcm_hw_clean(substream, 1);
-               dev_err(rtd->dev, "ASoC: %s() failed (%d)\n", __func__, ret);
-       }
 
-       return ret;
+       return soc_pcm_ret(rtd, ret);
 }
 
 static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
@@ -1539,10 +1554,7 @@ int dpcm_be_dai_startup(struct snd_soc_pcm_runtime *fe, int stream)
 unwind:
        dpcm_be_dai_startup_rollback(fe, stream, dpcm);
 
-       dev_err(fe->dev, "ASoC: %s() failed at %s (%d)\n",
-               __func__, be->dai_link->name, err);
-
-       return err;
+       return soc_pcm_ret(fe, err);
 }
 
 static void dpcm_runtime_setup_fe(struct snd_pcm_substream *substream)
@@ -1742,10 +1754,7 @@ static int dpcm_apply_symmetry(struct snd_pcm_substream *fe_substream,
                }
        }
 error:
-       if (err < 0)
-               dev_err(fe->dev, "ASoC: %s failed (%d)\n", __func__, err);
-
-       return err;
+       return soc_pcm_ret(fe, err);
 }
 
 static int dpcm_fe_dai_startup(struct snd_pcm_substream *fe_substream)
@@ -1782,10 +1791,7 @@ unwind:
 be_err:
        dpcm_set_fe_update_state(fe, stream, SND_SOC_DPCM_UPDATE_NO);
 
-       if (ret < 0)
-               dev_err(fe->dev, "%s() failed (%d)\n", __func__, ret);
-
-       return ret;
+       return soc_pcm_ret(fe, ret);
 }
 
 static int dpcm_fe_dai_shutdown(struct snd_pcm_substream *substream)
@@ -1982,10 +1988,7 @@ out:
        dpcm_set_fe_update_state(fe, stream, SND_SOC_DPCM_UPDATE_NO);
        mutex_unlock(&fe->card->mutex);
 
-       if (ret < 0)
-               dev_err(fe->dev, "ASoC: %s failed (%d)\n", __func__, ret);
-
-       return ret;
+       return soc_pcm_ret(fe, ret);
 }
 
 int dpcm_be_dai_trigger(struct snd_soc_pcm_runtime *fe, int stream,
@@ -2084,10 +2087,7 @@ int dpcm_be_dai_trigger(struct snd_soc_pcm_runtime *fe, int stream,
                }
        }
 end:
-       if (ret < 0)
-               dev_err(fe->dev, "ASoC: %s() failed at %s (%d)\n",
-                       __func__, be->dai_link->name, ret);
-       return ret;
+       return soc_pcm_ret(fe, ret);
 }
 EXPORT_SYMBOL_GPL(dpcm_be_dai_trigger);
 
@@ -2258,10 +2258,7 @@ int dpcm_be_dai_prepare(struct snd_soc_pcm_runtime *fe, int stream)
                be->dpcm[stream].state = SND_SOC_DPCM_STATE_PREPARE;
        }
 
-       if (ret < 0)
-               dev_err(fe->dev, "ASoC: %s() failed (%d)\n", __func__, ret);
-
-       return ret;
+       return soc_pcm_ret(fe, ret);
 }
 
 static int dpcm_fe_dai_prepare(struct snd_pcm_substream *substream)
@@ -2298,10 +2295,7 @@ out:
        dpcm_set_fe_update_state(fe, stream, SND_SOC_DPCM_UPDATE_NO);
        mutex_unlock(&fe->card->mutex);
 
-       if (ret < 0)
-               dev_err(fe->dev, "ASoC: %s() failed (%d)\n", __func__, ret);
-
-       return ret;
+       return soc_pcm_ret(fe, ret);
 }
 
 static int dpcm_run_update_shutdown(struct snd_soc_pcm_runtime *fe, int stream)
@@ -2334,10 +2328,7 @@ static int dpcm_run_update_shutdown(struct snd_soc_pcm_runtime *fe, int stream)
        /* run the stream event for each BE */
        dpcm_dapm_stream_event(fe, stream, SND_SOC_DAPM_STREAM_NOP);
 
-       if (err < 0)
-               dev_err(fe->dev, "ASoC: %s() failed (%d)\n", __func__, err);
-
-       return err;
+       return soc_pcm_ret(fe, err);
 }
 
 static int dpcm_run_update_startup(struct snd_soc_pcm_runtime *fe, int stream)
@@ -2430,10 +2421,7 @@ disconnect:
        }
        spin_unlock_irqrestore(&fe->card->dpcm_lock, flags);
 
-       if (ret < 0)
-               dev_err(fe->dev, "ASoC: %s() failed (%d)\n", __func__, ret);
-
-       return ret;
+       return soc_pcm_ret(fe, ret);
 }
 
 static int soc_dpcm_fe_runtime_update(struct snd_soc_pcm_runtime *fe, int new)