Hi Sridharan Thank you for reviewing > @@ -1319,18 +1219,11 @@ static int soc_pcm_trigger_stop(struct snd_pcm_substream *substream, int > cmd) > { > struct snd_soc_pcm_runtime *rtd = substream->private_data; > struct snd_soc_component *component; > - struct snd_soc_dai *cpu_dai; > - struct snd_soc_dai *codec_dai; > + struct snd_soc_dai *dai; > int i, ret; > > - for_each_rtd_codec_dais(rtd, i, codec_dai) { > - ret = snd_soc_dai_trigger(codec_dai, substream, cmd); > - if (ret < 0) > - return ret; > - } > - > - for_each_rtd_cpu_dais(rtd, i, cpu_dai) { > - ret = snd_soc_dai_trigger(cpu_dai, substream, cmd); > + for_each_rtd_dais(rtd, i, dai) { > > Morimoto-san, > > We are switching the order in which the codec dais and cpu dais are stopped here with this new macro > no. Does it make a difference? The same comment applies to some other changes as well. > > If the trigger_start() started cpu dais first and then codec dais, do we need to stop in the reverse > order? I'm sorry but I didn't mention detail. Yes, it exchanged the order. But I'm thinking that the current order was implemented by just a coincidence, and I'm hoping hardware doesn't matter order of same layer (= DAI). Maybe Mark answered already. https://lore.kernel.org/alsa-devel/20200225014039.GA21366@xxxxxxxxxxxxx/ But if the order was important for some platform, we need/should consider "order", like for_each_comp_order(). for_each_comp_order(order) { for_each_rtd_dais(rtd, i, dai, order) { ... Thank you for your help !! Best regards --- Kuninori Morimoto