Lines Matching refs:substream

34  * We might want to check substream by using list.
37 #define soc_link_mark_push(rtd, substream, tgt) ((rtd)->mark_##tgt = substream)
38 #define soc_link_mark_pop(rtd, substream, tgt) ((rtd)->mark_##tgt = NULL)
39 #define soc_link_mark_match(rtd, substream, tgt) ((rtd)->mark_##tgt == substream)
68 int snd_soc_link_startup(struct snd_pcm_substream *substream)
70 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
75 ret = rtd->dai_link->ops->startup(substream);
77 /* mark substream if succeeded */
79 soc_link_mark_push(rtd, substream, startup);
84 void snd_soc_link_shutdown(struct snd_pcm_substream *substream,
87 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
89 if (rollback && !soc_link_mark_match(rtd, substream, startup))
94 rtd->dai_link->ops->shutdown(substream);
96 /* remove marked substream */
97 soc_link_mark_pop(rtd, substream, startup);
100 int snd_soc_link_prepare(struct snd_pcm_substream *substream)
102 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
107 ret = rtd->dai_link->ops->prepare(substream);
112 int snd_soc_link_hw_params(struct snd_pcm_substream *substream,
115 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
120 ret = rtd->dai_link->ops->hw_params(substream, params);
122 /* mark substream if succeeded */
124 soc_link_mark_push(rtd, substream, hw_params);
129 void snd_soc_link_hw_free(struct snd_pcm_substream *substream, int rollback)
131 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
133 if (rollback && !soc_link_mark_match(rtd, substream, hw_params))
138 rtd->dai_link->ops->hw_free(substream);
140 /* remove marked substream */
141 soc_link_mark_pop(rtd, substream, hw_params);
144 static int soc_link_trigger(struct snd_pcm_substream *substream, int cmd)
146 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
151 ret = rtd->dai_link->ops->trigger(substream, cmd);
156 int snd_soc_link_trigger(struct snd_pcm_substream *substream, int cmd,
159 struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
166 ret = soc_link_trigger(substream, cmd);
169 soc_link_mark_push(rtd, substream, trigger);
174 if (rollback && !soc_link_mark_match(rtd, substream, trigger))
177 ret = soc_link_trigger(substream, cmd);
178 soc_link_mark_pop(rtd, substream, startup);