OSDN Git Service

ASoC: soc-pcm: indicate error message at dpcm_path_get()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 15 Mar 2021 00:57:52 +0000 (09:57 +0900)
committerMark Brown <broonie@kernel.org>
Fri, 19 Mar 2021 12:23:55 +0000 (12:23 +0000)
Indicating error message when failed case is very useful for debuging.
In many case, its style is like below.

int function(...)
{
...
return ret;
}

int caller(...)
{
...
ret = function(...);
if (ret < 0)
dev_err(...)
...
}

This is not so bad, but in this style *each caller* needs to indicate
duplicate same error message, and some caller is forgetting to do it.
And caller can't indicate detail function() error information.

If function() indicates error message, we can get same and
detail information without forgot.

int function(...)
{
...
if (ret < 0)
dev_err(...)

return ret;
}

int caller(...)
{
...
ret = function(...);
...
}

Now, many place uses dpcm_path_get() like below

ret = dpcm_path_get(...);
if (ret < 0)
goto error;
(A) else if (ret == 0)
dev_dbg(...)

But here, (A) part can be indicated at dpcm_path_get() not caller.
It is simple and readable code.

This patch do it.
Small detail behaviors will be exchanged by this patch.

1) indicates debug info (= path numbers) if path > 0 case only
   (It was *always* indicated).
2) soc_dpcm_fe_runtime_update() is indicating error message
   for paths < 0 case, but it is already done at dpcm_path_get().
   Thus just remove it. but dev_dbg() vs dev_warn() is exchanged.

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

index 89445ba..94f1f7a 100644 (file)
@@ -115,9 +115,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
        ret = dpcm_path_get(fe, stream, &list);
        if (ret < 0)
                goto be_err;
-       else if (ret == 0)
-               dev_dbg(fe->dev, "Compress ASoC: %s no valid %s route\n",
-                       fe->dai_link->name, stream ? "capture" : "playback");
+
        /* calculate valid and active FE <-> BE dpcms */
        dpcm_process_paths(fe, stream, &list, 1);
        fe->dpcm[stream].runtime = fe_substream->runtime;
index 82daf79..b21c53b 100644 (file)
@@ -1290,8 +1290,12 @@ int dpcm_path_get(struct snd_soc_pcm_runtime *fe,
                        fe->card->component_chaining ?
                                NULL : dpcm_end_walk_at_be);
 
-       dev_dbg(fe->dev, "ASoC: found %d audio %s paths\n", paths,
+       if (paths > 0)
+               dev_dbg(fe->dev, "ASoC: found %d audio %s paths\n", paths,
                        stream ? "capture" : "playback");
+       else if (paths == 0)
+               dev_dbg(fe->dev, "ASoC: %s no valid %s path\n", fe->dai_link->name,
+                        stream ? "capture" : "playback");
 
        return paths;
 }
@@ -2457,13 +2461,8 @@ static int soc_dpcm_fe_runtime_update(struct snd_soc_pcm_runtime *fe, int new)
                        continue;
 
                paths = dpcm_path_get(fe, stream, &list);
-               if (paths < 0) {
-                       dev_warn(fe->dev, "ASoC: %s no valid %s path\n",
-                                fe->dai_link->name,
-                                stream == SNDRV_PCM_STREAM_PLAYBACK ?
-                                "playback" : "capture");
+               if (paths < 0)
                        return paths;
-               }
 
                /* update any playback/capture paths */
                count = dpcm_process_paths(fe, stream, &list, new);
@@ -2556,12 +2555,8 @@ static int dpcm_fe_dai_open(struct snd_pcm_substream *fe_substream)
        fe->dpcm[stream].runtime = fe_substream->runtime;
 
        ret = dpcm_path_get(fe, stream, &list);
-       if (ret < 0) {
+       if (ret < 0)
                goto open_end;
-       } else if (ret == 0) {
-               dev_dbg(fe->dev, "ASoC: %s no valid %s route\n",
-                       fe->dai_link->name, stream ? "capture" : "playback");
-       }
 
        /* calculate valid and active FE <-> BE dpcms */
        dpcm_process_paths(fe, stream, &list, 1);