mirror of https://github.com/torvalds/linux.git
ASoC: pcm: Reverse iterate DAIs when shutting them down
During startup snd_soc_dai_startup() is launched in ascending order and the exact same thing is done during shutdown procedure. Reverse the order in the latter so that it is symmetric to the former. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://lore.kernel.org/r/20240426095733.3946951-2-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
466c8c46b4
commit
31a70a71b3
|
|
@ -1235,6 +1235,10 @@ struct snd_soc_pcm_runtime {
|
||||||
((i) < (rtd)->dai_link->num_cpus + (rtd)->dai_link->num_codecs) && \
|
((i) < (rtd)->dai_link->num_cpus + (rtd)->dai_link->num_codecs) && \
|
||||||
((dai) = (rtd)->dais[i]); \
|
((dai) = (rtd)->dais[i]); \
|
||||||
(i)++)
|
(i)++)
|
||||||
|
#define for_each_rtd_dais_reverse(rtd, i, dai) \
|
||||||
|
for ((i) = (rtd)->dai_link->num_cpus + (rtd)->dai_link->num_codecs - 1; \
|
||||||
|
(i) >= 0 && ((dai) = (rtd)->dais[i]); \
|
||||||
|
(i)--)
|
||||||
#define for_each_rtd_ch_maps(rtd, i, ch_maps) for_each_link_ch_maps(rtd->dai_link, i, ch_maps)
|
#define for_each_rtd_ch_maps(rtd, i, ch_maps) for_each_link_ch_maps(rtd->dai_link, i, ch_maps)
|
||||||
|
|
||||||
void snd_soc_close_delayed_work(struct snd_soc_pcm_runtime *rtd);
|
void snd_soc_close_delayed_work(struct snd_soc_pcm_runtime *rtd);
|
||||||
|
|
|
||||||
|
|
@ -724,7 +724,7 @@ static int soc_pcm_clean(struct snd_soc_pcm_runtime *rtd,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for_each_rtd_dais(rtd, i, dai)
|
for_each_rtd_dais_reverse(rtd, i, dai)
|
||||||
snd_soc_dai_shutdown(dai, substream, rollback);
|
snd_soc_dai_shutdown(dai, substream, rollback);
|
||||||
|
|
||||||
snd_soc_link_shutdown(substream, rollback);
|
snd_soc_link_shutdown(substream, rollback);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue