@@ -72,6 +72,16 @@ static void soc_rtd_hw_free(struct snd_soc_pcm_runtime *rtd,
72
72
rtd -> dai_link -> ops -> hw_free (substream );
73
73
}
74
74
75
+ static int soc_rtd_trigger (struct snd_soc_pcm_runtime * rtd ,
76
+ struct snd_pcm_substream * substream ,
77
+ int cmd )
78
+ {
79
+ if (rtd -> dai_link -> ops &&
80
+ rtd -> dai_link -> ops -> trigger )
81
+ return rtd -> dai_link -> ops -> trigger (substream , cmd );
82
+ return 0 ;
83
+ }
84
+
75
85
/**
76
86
* snd_soc_runtime_activate() - Increment active count for PCM runtime components
77
87
* @rtd: ASoC PCM runtime that is activated
@@ -1013,11 +1023,9 @@ static int soc_pcm_trigger_start(struct snd_pcm_substream *substream, int cmd)
1013
1023
struct snd_soc_dai * codec_dai ;
1014
1024
int i , ret ;
1015
1025
1016
- if (rtd -> dai_link -> ops -> trigger ) {
1017
- ret = rtd -> dai_link -> ops -> trigger (substream , cmd );
1018
- if (ret < 0 )
1019
- return ret ;
1020
- }
1026
+ ret = soc_rtd_trigger (rtd , substream , cmd );
1027
+ if (ret < 0 )
1028
+ return ret ;
1021
1029
1022
1030
for_each_rtd_components (rtd , i , component ) {
1023
1031
ret = snd_soc_component_trigger (component , substream , cmd );
@@ -1062,11 +1070,9 @@ static int soc_pcm_trigger_stop(struct snd_pcm_substream *substream, int cmd)
1062
1070
return ret ;
1063
1071
}
1064
1072
1065
- if (rtd -> dai_link -> ops -> trigger ) {
1066
- ret = rtd -> dai_link -> ops -> trigger (substream , cmd );
1067
- if (ret < 0 )
1068
- return ret ;
1069
- }
1073
+ ret = soc_rtd_trigger (rtd , substream , cmd );
1074
+ if (ret < 0 )
1075
+ return ret ;
1070
1076
1071
1077
return 0 ;
1072
1078
}
0 commit comments