mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
ASoC: audio-graph-card2: add link-trigger-order support
Some Sound Card might need special trigger ordering which is based on CPU/Codec connection. It is already supported on ASoC, but Audio Graph Card2 still not yet support it. Let's support it. Cc: Maxim Kochetkov <fido_max@inbox.ru> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87msnqzoj8.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
4d4125d8f5
commit
e64343fa57
@ -759,6 +759,8 @@ static void graph_link_init(struct simple_util_priv *priv,
|
||||
struct device_node *ports_cpu, *ports_codec;
|
||||
unsigned int daifmt = 0, daiclk = 0;
|
||||
bool playback_only = 0, capture_only = 0;
|
||||
enum snd_soc_trigger_order trigger_start = SND_SOC_TRIGGER_ORDER_DEFAULT;
|
||||
enum snd_soc_trigger_order trigger_stop = SND_SOC_TRIGGER_ORDER_DEFAULT;
|
||||
unsigned int bit_frame = 0;
|
||||
|
||||
of_node_get(port_cpu);
|
||||
@ -806,6 +808,14 @@ static void graph_link_init(struct simple_util_priv *priv,
|
||||
of_property_read_u32(ep_cpu, "mclk-fs", &dai_props->mclk_fs);
|
||||
of_property_read_u32(ep_codec, "mclk-fs", &dai_props->mclk_fs);
|
||||
|
||||
graph_util_parse_trigger_order(priv, lnk, &trigger_start, &trigger_stop);
|
||||
graph_util_parse_trigger_order(priv, ports_cpu, &trigger_start, &trigger_stop);
|
||||
graph_util_parse_trigger_order(priv, ports_codec, &trigger_start, &trigger_stop);
|
||||
graph_util_parse_trigger_order(priv, port_cpu, &trigger_start, &trigger_stop);
|
||||
graph_util_parse_trigger_order(priv, port_cpu, &trigger_start, &trigger_stop);
|
||||
graph_util_parse_trigger_order(priv, ep_cpu, &trigger_start, &trigger_stop);
|
||||
graph_util_parse_trigger_order(priv, ep_codec, &trigger_start, &trigger_stop);
|
||||
|
||||
/*
|
||||
* convert bit_frame
|
||||
* We need to flip clock_provider if it was CPU node,
|
||||
@ -818,6 +828,9 @@ static void graph_link_init(struct simple_util_priv *priv,
|
||||
dai_link->playback_only = playback_only;
|
||||
dai_link->capture_only = capture_only;
|
||||
|
||||
dai_link->trigger_start = trigger_start;
|
||||
dai_link->trigger_stop = trigger_stop;
|
||||
|
||||
dai_link->dai_fmt = daifmt | daiclk;
|
||||
dai_link->init = simple_util_dai_init;
|
||||
dai_link->ops = &graph_ops;
|
||||
|
Loading…
Reference in New Issue
Block a user