• Kuninori Morimoto's avatar
    ASoC: soc-core.c: setup rtd->pmdown_time at soc_new_pcm_runtime() · c403dcd8
    Kuninori Morimoto authored
    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: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/875yhxmjjd.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    c403dcd8
hdaudio.c 7.65 KB