@@ -57,15 +57,14 @@ avs_dai_find_path_template(struct snd_soc_dai *dai, bool is_fe, int direction)
5757 return dw -> priv ;
5858}
5959
60- static int avs_dai_startup (struct snd_pcm_substream * substream , struct snd_soc_dai * dai , bool is_fe ,
61- const struct snd_soc_dai_ops * ops )
60+ static int avs_dai_startup (struct snd_pcm_substream * substream , struct snd_soc_dai * dai )
6261{
6362 struct snd_soc_pcm_runtime * rtd = snd_soc_substream_to_rtd (substream );
6463 struct avs_dev * adev = to_avs_dev (dai -> component -> dev );
6564 struct avs_tplg_path_template * template ;
6665 struct avs_dma_data * data ;
6766
68- template = avs_dai_find_path_template (dai , is_fe , substream -> stream );
67+ template = avs_dai_find_path_template (dai , ! rtd -> dai_link -> no_pcm , substream -> stream );
6968 if (!template ) {
7069 dev_err (dai -> dev , "no %s path for dai %s, invalid tplg?\n" ,
7170 snd_pcm_stream_str (substream ), dai -> name );
@@ -174,13 +173,6 @@ static int avs_dai_prepare(struct avs_dev *adev, struct snd_pcm_substream *subst
174173 return ret ;
175174}
176175
177- static const struct snd_soc_dai_ops avs_dai_nonhda_be_ops ;
178-
179- static int avs_dai_nonhda_be_startup (struct snd_pcm_substream * substream , struct snd_soc_dai * dai )
180- {
181- return avs_dai_startup (substream , dai , false, & avs_dai_nonhda_be_ops );
182- }
183-
184176static int avs_dai_nonhda_be_hw_params (struct snd_pcm_substream * substream ,
185177 struct snd_pcm_hw_params * hw_params , struct snd_soc_dai * dai )
186178{
@@ -265,24 +257,22 @@ static int avs_dai_nonhda_be_trigger(struct snd_pcm_substream *substream, int cm
265257}
266258
267259static const struct snd_soc_dai_ops avs_dai_nonhda_be_ops = {
268- .startup = avs_dai_nonhda_be_startup ,
260+ .startup = avs_dai_startup ,
269261 .shutdown = avs_dai_shutdown ,
270262 .hw_params = avs_dai_nonhda_be_hw_params ,
271263 .hw_free = avs_dai_nonhda_be_hw_free ,
272264 .prepare = avs_dai_nonhda_be_prepare ,
273265 .trigger = avs_dai_nonhda_be_trigger ,
274266};
275267
276- static const struct snd_soc_dai_ops avs_dai_hda_be_ops ;
277-
278268static int avs_dai_hda_be_startup (struct snd_pcm_substream * substream , struct snd_soc_dai * dai )
279269{
280270 struct snd_soc_pcm_runtime * rtd = snd_soc_substream_to_rtd (substream );
281271 struct hdac_ext_stream * link_stream ;
282272 struct hda_codec * codec ;
283273 int ret ;
284274
285- ret = avs_dai_startup (substream , dai , false, & avs_dai_hda_be_ops );
275+ ret = avs_dai_startup (substream , dai );
286276 if (ret )
287277 return ret ;
288278
@@ -479,8 +469,6 @@ static const struct snd_pcm_hw_constraint_list hw_rates = {
479469 .mask = 0 ,
480470};
481471
482- const struct snd_soc_dai_ops avs_dai_fe_ops ;
483-
484472static int hw_rule_param_size (struct snd_pcm_hw_params * params , struct snd_pcm_hw_rule * rule )
485473{
486474 struct snd_interval * interval = hw_param_interval (params , rule -> var );
@@ -509,7 +497,7 @@ static int avs_dai_fe_startup(struct snd_pcm_substream *substream, struct snd_so
509497 struct hdac_ext_stream * host_stream ;
510498 int ret ;
511499
512- ret = avs_dai_startup (substream , dai , true, & avs_dai_fe_ops );
500+ ret = avs_dai_startup (substream , dai );
513501 if (ret )
514502 return ret ;
515503
0 commit comments