aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/sound/soc/generic/simple-card-utils.c
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2024-05-28 05:05:28 +0000
committerMark Brown <broonie@kernel.org>2024-06-03 15:59:36 +0100
commit844de7eebe97a1c277f8a408457712086c957195 (patch)
tree6994569ac38d49577e5b0cf85923dcecd5ce141d /sound/soc/generic/simple-card-utils.c
parentASoC: audio-graph-card2: remove ports node name check (diff)
downloadwireguard-linux-844de7eebe97a1c277f8a408457712086c957195.tar.xz
wireguard-linux-844de7eebe97a1c277f8a408457712086c957195.zip
ASoC: audio-graph-card2: expand dai_link property part
Current dai_link related property are parsed and enabled only on CPU port node (A)(b)(c). OTOH, Audio Graph Card2 supports many connections like Multi-CPU, DPCM, Codec2Codec today. For example in Multi-CPU case, it will be checked via (X) -> (B) -> (b) process, but (X) / (B) part property is not parsed. >From dai_link related settings point of view, (B) (C) part and Codec port also enabled is more viscerally understandable, and useful. card2 { (X) links = <&snd-cpu (A) &snd-multi (B) &snd-dpcm (C) ...> multi { ports { (B) snd-multi: port { ... }; ... }; }; dpcm { ports { (C) snd-dpcm: port { ... }; ... }; }; codec2codec { ... }; }; cpu_device { ports { (A) snd-cpu: port { ... }; (b) mcpu: port { ... }; (c) dcpu: port { ... }; } }; One note here is that if it was Multi-CPU/Codec case, 1st port only enabled to have property it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://msgid.link/r/875xuyh6g7.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/generic/simple-card-utils.c')
-rw-r--r--sound/soc/generic/simple-card-utils.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index a655f20428af..dcd0569157ce 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -1146,14 +1146,13 @@ EXPORT_SYMBOL_GPL(graph_util_parse_dai);
void graph_util_parse_link_direction(struct device_node *np,
bool *playback_only, bool *capture_only)
{
- bool is_playback_only = false;
- bool is_capture_only = false;
+ bool is_playback_only = of_property_read_bool(np, "playback-only");
+ bool is_capture_only = of_property_read_bool(np, "capture-only");
- is_playback_only = of_property_read_bool(np, "playback-only");
- is_capture_only = of_property_read_bool(np, "capture-only");
-
- *playback_only = is_playback_only;
- *capture_only = is_capture_only;
+ if (is_playback_only)
+ *playback_only = is_playback_only;
+ if (is_capture_only)
+ *capture_only = is_capture_only;
}
EXPORT_SYMBOL_GPL(graph_util_parse_link_direction);