mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05:00
ASoC: audio-graph-card2: use snd_soc_ret()
We can use snd_soc_ret() to indicate error message when return. Let's use it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/877c652ql8.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
74a0ca4c7f
commit
8d83282e53
@@ -234,6 +234,13 @@ enum graph_type {
|
||||
#define GRAPH_NODENAME_DPCM "dpcm"
|
||||
#define GRAPH_NODENAME_C2C "codec2codec"
|
||||
|
||||
#define graph_ret(priv, ret) _graph_ret(priv, __func__, ret)
|
||||
static inline int _graph_ret(struct simple_util_priv *priv,
|
||||
const char *func, int ret)
|
||||
{
|
||||
return snd_soc_ret(simple_priv_to_dev(priv), ret, "at %s()\n", func);
|
||||
}
|
||||
|
||||
#define ep_to_port(ep) of_get_parent(ep)
|
||||
static struct device_node *port_to_ports(struct device_node *port)
|
||||
{
|
||||
@@ -411,19 +418,19 @@ static int __graph_parse_node(struct simple_util_priv *priv,
|
||||
|
||||
ret = graph_util_parse_dai(priv, ep, dlc, &is_single_links);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
ret = simple_util_parse_tdm(ep, dai);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
ret = simple_util_parse_tdm_width_map(priv, ep, dai);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
ret = simple_util_parse_clk(dev, ep, dai, dlc);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
/*
|
||||
* set DAI Name
|
||||
@@ -488,11 +495,12 @@ static int __graph_parse_node(struct simple_util_priv *priv,
|
||||
simple_util_canonicalize_cpu(cpus, is_single_links);
|
||||
simple_util_canonicalize_platform(platforms, cpus);
|
||||
}
|
||||
|
||||
return 0;
|
||||
end:
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
|
||||
static int graph_parse_node_multi_nm(struct snd_soc_dai_link *dai_link,
|
||||
static int graph_parse_node_multi_nm(struct simple_util_priv *priv,
|
||||
struct snd_soc_dai_link *dai_link,
|
||||
int *nm_idx, int cpu_idx,
|
||||
struct device_node *mcpu_port)
|
||||
{
|
||||
@@ -534,10 +542,10 @@ static int graph_parse_node_multi_nm(struct snd_soc_dai_link *dai_link,
|
||||
struct device_node *mcodec_port_top __free(device_node) = ep_to_port(mcodec_ep_top);
|
||||
struct device_node *mcodec_ports __free(device_node) = port_to_ports(mcodec_port_top);
|
||||
int nm_max = max(dai_link->num_cpus, dai_link->num_codecs);
|
||||
int ret = 0;
|
||||
int ret = -EINVAL;
|
||||
|
||||
if (cpu_idx > dai_link->num_cpus)
|
||||
return -EINVAL;
|
||||
goto end;
|
||||
|
||||
for_each_of_graph_port_endpoint(mcpu_port, mcpu_ep_n) {
|
||||
int codec_idx = 0;
|
||||
@@ -578,8 +586,8 @@ static int graph_parse_node_multi_nm(struct snd_soc_dai_link *dai_link,
|
||||
if (ret < 0)
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
end:
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
|
||||
static int graph_parse_node_multi(struct simple_util_priv *priv,
|
||||
@@ -633,7 +641,7 @@ static int graph_parse_node_multi(struct simple_util_priv *priv,
|
||||
|
||||
/* CPU:Codec = N:M */
|
||||
if (is_cpu && dai_link->ch_maps) {
|
||||
ret = graph_parse_node_multi_nm(dai_link, &nm_idx, idx, port);
|
||||
ret = graph_parse_node_multi_nm(priv, dai_link, &nm_idx, idx, port);
|
||||
if (ret < 0)
|
||||
goto multi_err;
|
||||
}
|
||||
@@ -643,7 +651,7 @@ static int graph_parse_node_multi(struct simple_util_priv *priv,
|
||||
ret = -EINVAL;
|
||||
|
||||
multi_err:
|
||||
return ret;
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
|
||||
static int graph_parse_node_single(struct simple_util_priv *priv,
|
||||
@@ -651,7 +659,7 @@ static int graph_parse_node_single(struct simple_util_priv *priv,
|
||||
struct device_node *ep,
|
||||
struct link_info *li, int is_cpu)
|
||||
{
|
||||
return __graph_parse_node(priv, gtype, ep, li, is_cpu, 0);
|
||||
return graph_ret(priv, __graph_parse_node(priv, gtype, ep, li, is_cpu, 0));
|
||||
}
|
||||
|
||||
static int graph_parse_node(struct simple_util_priv *priv,
|
||||
@@ -660,11 +668,14 @@ static int graph_parse_node(struct simple_util_priv *priv,
|
||||
struct link_info *li, int is_cpu)
|
||||
{
|
||||
struct device_node *port __free(device_node) = ep_to_port(ep);
|
||||
int ret;
|
||||
|
||||
if (graph_lnk_is_multi(port))
|
||||
return graph_parse_node_multi(priv, gtype, port, li, is_cpu);
|
||||
ret = graph_parse_node_multi(priv, gtype, port, li, is_cpu);
|
||||
else
|
||||
return graph_parse_node_single(priv, gtype, ep, li, is_cpu);
|
||||
ret = graph_parse_node_single(priv, gtype, ep, li, is_cpu);
|
||||
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
|
||||
static void graph_parse_daifmt(struct device_node *node, unsigned int *daifmt)
|
||||
@@ -842,18 +853,19 @@ int audio_graph2_link_normal(struct simple_util_priv *priv,
|
||||
*/
|
||||
ret = graph_parse_node(priv, GRAPH_NORMAL, codec_ep, li, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
/*
|
||||
* call CPU, and set DAI Name
|
||||
*/
|
||||
ret = graph_parse_node(priv, GRAPH_NORMAL, cpu_ep, li, 1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
graph_link_init(priv, lnk, cpu_ep, codec_ep, li, 1);
|
||||
|
||||
return ret;
|
||||
end:
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(audio_graph2_link_normal);
|
||||
|
||||
@@ -946,7 +958,7 @@ int audio_graph2_link_dpcm(struct simple_util_priv *priv,
|
||||
|
||||
graph_link_init(priv, lnk, cpu_ep, codec_ep, li, is_cpu);
|
||||
|
||||
return ret;
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(audio_graph2_link_dpcm);
|
||||
|
||||
@@ -992,8 +1004,13 @@ int audio_graph2_link_c2c(struct simple_util_priv *priv,
|
||||
struct snd_soc_pcm_stream *c2c_conf;
|
||||
|
||||
c2c_conf = devm_kzalloc(dev, sizeof(*c2c_conf), GFP_KERNEL);
|
||||
if (!c2c_conf)
|
||||
return ret;
|
||||
if (!c2c_conf) {
|
||||
/*
|
||||
* Clang doesn't allow to use "goto end" before calling __free(),
|
||||
* because it bypasses the initialization. Use graph_ret() directly.
|
||||
*/
|
||||
return graph_ret(priv, -ENOMEM);
|
||||
}
|
||||
|
||||
c2c_conf->formats = SNDRV_PCM_FMTBIT_S32_LE; /* update ME */
|
||||
c2c_conf->rates = SNDRV_PCM_RATE_8000_384000;
|
||||
@@ -1019,18 +1036,18 @@ int audio_graph2_link_c2c(struct simple_util_priv *priv,
|
||||
*/
|
||||
ret = graph_parse_node(priv, GRAPH_C2C, codec1_ep, li, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
/*
|
||||
* call CPU, and set DAI Name
|
||||
*/
|
||||
ret = graph_parse_node(priv, GRAPH_C2C, codec0_ep, li, 1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto end;
|
||||
|
||||
graph_link_init(priv, lnk, codec0_ep, codec1_ep, li, 1);
|
||||
|
||||
return ret;
|
||||
end:
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(audio_graph2_link_c2c);
|
||||
|
||||
@@ -1078,7 +1095,7 @@ static int graph_link(struct simple_util_priv *priv,
|
||||
|
||||
li->link++;
|
||||
err:
|
||||
return ret;
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
|
||||
static int graph_counter(struct device_node *lnk)
|
||||
@@ -1249,7 +1266,7 @@ static int graph_count(struct simple_util_priv *priv,
|
||||
|
||||
li->link++;
|
||||
err:
|
||||
return ret;
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
|
||||
static int graph_for_each_link(struct simple_util_priv *priv,
|
||||
@@ -1266,7 +1283,7 @@ static int graph_for_each_link(struct simple_util_priv *priv,
|
||||
struct device_node *node = dev->of_node;
|
||||
struct device_node *lnk;
|
||||
enum graph_type gtype;
|
||||
int rc, ret;
|
||||
int rc, ret = 0;
|
||||
|
||||
/* loop for all listed CPU port */
|
||||
of_for_each_phandle(&it, rc, node, "links", NULL, 0) {
|
||||
@@ -1276,10 +1293,10 @@ static int graph_for_each_link(struct simple_util_priv *priv,
|
||||
|
||||
ret = func(priv, hooks, gtype, lnk, li);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
|
||||
int audio_graph2_parse_of(struct simple_util_priv *priv, struct device *dev,
|
||||
@@ -1355,7 +1372,7 @@ int audio_graph2_parse_of(struct simple_util_priv *priv, struct device *dev,
|
||||
if (ret < 0)
|
||||
dev_err_probe(dev, ret, "parse error\n");
|
||||
|
||||
return ret;
|
||||
return graph_ret(priv, ret);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(audio_graph2_parse_of);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user