Searched hist:"5 f53898af1a2bf753f111ec1c7ed668fe6557b76" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/sound/soc/ |
H A D | soc-pcm.c | diff 5f53898af1a2bf753f111ec1c7ed668fe6557b76 Sun Feb 21 18:47:26 CST 2021 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> ASoC: soc-pcm: add dpcm_runtime_setup_fe()
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: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87pn0tvsgx.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
|