ASoC: soc-core.c: setup rtd->pmdown_time at soc_new_pcm_runtime()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 9 Sep 2022 01:19:18 +0000 (01:19 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 19 Sep 2022 16:52:41 +0000 (17:52 +0100)
commitc403dcd8b0c4dc01974329e38dc3f82859fd6f99
treea7971edd41d157e44683dd8615cdf1508f3f0176
parente31a4a9320f1ccf75a690fe7f759896f285bb62e
ASoC: soc-core.c: setup rtd->pmdown_time at soc_new_pcm_runtime()

Almost all default rtd->xxx are setup at soc_new_pcm_runtime()
which is sub-function of snd_soc_add_pcm_runtime() (A).
But "rtd->pmdown_time" is setup at soc_init_pcm_runtime() (B).
It is very random timing setup. This patch setup it at (A),
same as other rtd->xxx.

static int snd_soc_bind_card(...)
{
...
for_each_card_prelinks(...) {
(A) ret = snd_soc_add_pcm_runtime(...);
...
}
...
for_each_card_rtds(...) {
(B) ret = soc_init_pcm_runtime(...);
...
}
...
}

One note is that current topology/intel are directly calling
snd_soc_add_pcm_runtime() (A) without calling soc_init_pcm_runtime() (B).
This means, its "rtd->pmdown_time settings" was 0, but will have default
value by this patch.

"rtd->pmdown_time settings" will be used at
snd_soc_runtime_ignore_pmdown_time(). This patch adds
"ignore_pmdown_time" to these driver to keep compatibility.

bool snd_soc_runtime_ignore_pmdown_time(...)
{
...
=> if (!rtd->pmdown_time || rtd->dai_link->ignore_pmdown_time)
return true;
...
}

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/875yhxmjjd.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/avs/boards/hdaudio.c
sound/soc/soc-core.c
sound/soc/soc-topology.c