• Kuninori Morimoto's avatar
    ASoC: soc-pcm: add dpcm_runtime_setup_fe() · 5f53898a
    Kuninori Morimoto authored
    dpcm_fe_dai_startup() (= A) calls dpcm_set_fe_runtime() (= B) to setup
    DPCM runtime. From *naming point of view*, it sounds like setup function
    for FE.
    
    (A)	static int dpcm_fe_dai_startup(...)
    	{
    		...
    (B)		dpcm_set_fe_runtime(...);
    		...
    	}
    
    But in dpcm_set_fe_runtime() (= B),
    It  setups FE by for_each loop (= X),
    and setups BE by dpcm_runtime_merge_xxx() (= Y).
    
    (B)	static void dpcm_set_fe_runtime(...)
    	{
    		...
     ^		for_each_rtd_cpu_dais(...) {
     |			...
    (X)			soc_pcm_hw_update_rate(...);
     |			soc_pcm_hw_update_chan(...);
     |			soc_pcm_hw_update_format(...);
     v		}
    
     ^		dpcm_runtime_merge_format(...);
    (Y)		dpcm_runtime_merge_chan(...);
     v		dpcm_runtime_merge_rate(...);
    	}
    
    These means that the function which is called as xxx_fe_xxx()
    is setups both FE and BE. This is confusable and can be hot bed for bug.
    
    To tidyup it, as 1st step, this patch adds new dpcm_runtime_setup_fe()
    for (X).
    Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/87pn0tvsgx.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    5f53898a
soc-pcm.c 77.6 KB