--- a/include/sound/soc-dpcm.h+++ b/include/sound/soc-dpcm.h@@ -103,6 +103,9 @@ struct snd_soc_dpcm_runtime { int trigger_pending; /* trigger cmd + 1 if pending, 0 if not */ };+#define for_each_dpcm_fe(be, stream, dpcm) \+ list_for_each_entry(dpcm, &(be)->dpcm[stream].fe_clients, list_fe)+This macro is really confusing. dpcm is used as both control variable of theloop and name of the field in *be.
--- a/include/sound/soc-dpcm.h+++ b/include/sound/soc-dpcm.h@@ -103,6 +103,9 @@ struct snd_soc_dpcm_runtime { int trigger_pending; /* trigger cmd + 1 if pending, 0 if not */ };+#define for_each_dpcm_fe(be, stream, dpcm)
+ list_for_each_entry(dpcm, &(be)->dpcm[stream].fe_clients, list_fe)+
Plus it relies on list_fe variable to bepresent in the context including it... that's non-standard.
present in the context including it... that's non-standard.
Oh and "&(be)->" can be written as "(be)." AFAICT.
© 2023 Groups.io