@@ -62,7 +62,7 @@ static int soc_compr_clean(struct snd_compr_stream *cstream, int rollback)
6262 struct snd_soc_dai * codec_dai = asoc_rtd_to_codec (rtd , 0 );
6363 int stream = cstream -> direction ; /* SND_COMPRESS_xxx is same as SNDRV_PCM_STREAM_xxx */
6464
65- mutex_lock_nested ( & rtd -> card -> pcm_mutex , rtd -> card -> pcm_subclass );
65+ snd_soc_dpcm_mutex_lock ( rtd );
6666
6767 if (!rollback )
6868 snd_soc_runtime_deactivate (rtd , stream );
@@ -84,7 +84,7 @@ static int soc_compr_clean(struct snd_compr_stream *cstream, int rollback)
8484 if (!rollback )
8585 snd_soc_dapm_stream_stop (rtd , stream );
8686
87- mutex_unlock ( & rtd -> card -> pcm_mutex );
87+ snd_soc_dpcm_mutex_unlock ( rtd );
8888
8989 snd_soc_pcm_component_pm_runtime_put (rtd , cstream , rollback );
9090
@@ -107,7 +107,7 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
107107 if (ret < 0 )
108108 goto err_no_lock ;
109109
110- mutex_lock_nested ( & rtd -> card -> pcm_mutex , rtd -> card -> pcm_subclass );
110+ snd_soc_dpcm_mutex_lock ( rtd );
111111
112112 ret = snd_soc_dai_compr_startup (cpu_dai , cstream );
113113 if (ret < 0 )
@@ -123,7 +123,7 @@ static int soc_compr_open(struct snd_compr_stream *cstream)
123123
124124 snd_soc_runtime_activate (rtd , stream );
125125err :
126- mutex_unlock ( & rtd -> card -> pcm_mutex );
126+ snd_soc_dpcm_mutex_unlock ( rtd );
127127err_no_lock :
128128 if (ret < 0 )
129129 soc_compr_clean (cstream , 1 );
@@ -146,7 +146,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
146146 if (ret < 0 )
147147 goto be_err ;
148148
149- mutex_lock_nested ( & fe -> card -> pcm_mutex , fe -> card -> pcm_subclass );
149+ snd_soc_dpcm_mutex_lock ( fe );
150150
151151 /* calculate valid and active FE <-> BE dpcms */
152152 dpcm_process_paths (fe , stream , & list , 1 );
@@ -182,7 +182,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
182182 fe -> dpcm [stream ].runtime_update = SND_SOC_DPCM_UPDATE_NO ;
183183
184184 snd_soc_runtime_activate (fe , stream );
185- mutex_unlock ( & fe -> card -> pcm_mutex );
185+ snd_soc_dpcm_mutex_unlock ( fe );
186186
187187 mutex_unlock (& fe -> card -> mutex );
188188
@@ -209,7 +209,7 @@ static int soc_compr_free_fe(struct snd_compr_stream *cstream)
209209
210210 mutex_lock_nested (& fe -> card -> mutex , SND_SOC_CARD_CLASS_RUNTIME );
211211
212- mutex_lock_nested ( & fe -> card -> pcm_mutex , fe -> card -> pcm_subclass );
212+ snd_soc_dpcm_mutex_lock ( fe );
213213 snd_soc_runtime_deactivate (fe , stream );
214214
215215 fe -> dpcm [stream ].runtime_update = SND_SOC_DPCM_UPDATE_FE ;
@@ -229,7 +229,7 @@ static int soc_compr_free_fe(struct snd_compr_stream *cstream)
229229
230230 dpcm_be_disconnect (fe , stream );
231231
232- mutex_unlock ( & fe -> card -> pcm_mutex );
232+ snd_soc_dpcm_mutex_unlock ( fe );
233233
234234 snd_soc_link_compr_shutdown (cstream , 0 );
235235
@@ -249,7 +249,7 @@ static int soc_compr_trigger(struct snd_compr_stream *cstream, int cmd)
249249 int stream = cstream -> direction ; /* SND_COMPRESS_xxx is same as SNDRV_PCM_STREAM_xxx */
250250 int ret ;
251251
252- mutex_lock_nested ( & rtd -> card -> pcm_mutex , rtd -> card -> pcm_subclass );
252+ snd_soc_dpcm_mutex_lock ( rtd );
253253
254254 ret = snd_soc_component_compr_trigger (cstream , cmd );
255255 if (ret < 0 )
@@ -269,7 +269,7 @@ static int soc_compr_trigger(struct snd_compr_stream *cstream, int cmd)
269269 }
270270
271271out :
272- mutex_unlock ( & rtd -> card -> pcm_mutex );
272+ snd_soc_dpcm_mutex_unlock ( rtd );
273273 return ret ;
274274}
275275
@@ -327,7 +327,7 @@ static int soc_compr_set_params(struct snd_compr_stream *cstream,
327327 int stream = cstream -> direction ; /* SND_COMPRESS_xxx is same as SNDRV_PCM_STREAM_xxx */
328328 int ret ;
329329
330- mutex_lock_nested ( & rtd -> card -> pcm_mutex , rtd -> card -> pcm_subclass );
330+ snd_soc_dpcm_mutex_lock ( rtd );
331331
332332 /*
333333 * First we call set_params for the CPU DAI, then the component
@@ -352,14 +352,14 @@ static int soc_compr_set_params(struct snd_compr_stream *cstream,
352352
353353 /* cancel any delayed stream shutdown that is pending */
354354 rtd -> pop_wait = 0 ;
355- mutex_unlock ( & rtd -> card -> pcm_mutex );
355+ snd_soc_dpcm_mutex_unlock ( rtd );
356356
357357 cancel_delayed_work_sync (& rtd -> delayed_work );
358358
359359 return 0 ;
360360
361361err :
362- mutex_unlock ( & rtd -> card -> pcm_mutex );
362+ snd_soc_dpcm_mutex_unlock ( rtd );
363363 return ret ;
364364}
365365
@@ -404,9 +404,9 @@ static int soc_compr_set_params_fe(struct snd_compr_stream *cstream,
404404 ret = snd_soc_link_compr_set_params (cstream );
405405 if (ret < 0 )
406406 goto out ;
407- mutex_lock_nested ( & fe -> card -> pcm_mutex , fe -> card -> pcm_subclass );
407+ snd_soc_dpcm_mutex_lock ( fe );
408408 dpcm_dapm_stream_event (fe , stream , SND_SOC_DAPM_STREAM_START );
409- mutex_unlock ( & fe -> card -> pcm_mutex );
409+ snd_soc_dpcm_mutex_unlock ( fe );
410410 fe -> dpcm [stream ].state = SND_SOC_DPCM_STATE_PREPARE ;
411411
412412out :
@@ -422,15 +422,15 @@ static int soc_compr_get_params(struct snd_compr_stream *cstream,
422422 struct snd_soc_dai * cpu_dai = asoc_rtd_to_cpu (rtd , 0 );
423423 int ret = 0 ;
424424
425- mutex_lock_nested ( & rtd -> card -> pcm_mutex , rtd -> card -> pcm_subclass );
425+ snd_soc_dpcm_mutex_lock ( rtd );
426426
427427 ret = snd_soc_dai_compr_get_params (cpu_dai , cstream , params );
428428 if (ret < 0 )
429429 goto err ;
430430
431431 ret = snd_soc_component_compr_get_params (cstream , params );
432432err :
433- mutex_unlock ( & rtd -> card -> pcm_mutex );
433+ snd_soc_dpcm_mutex_unlock ( rtd );
434434 return ret ;
435435}
436436
@@ -440,15 +440,15 @@ static int soc_compr_ack(struct snd_compr_stream *cstream, size_t bytes)
440440 struct snd_soc_dai * cpu_dai = asoc_rtd_to_cpu (rtd , 0 );
441441 int ret ;
442442
443- mutex_lock_nested ( & rtd -> card -> pcm_mutex , rtd -> card -> pcm_subclass );
443+ snd_soc_dpcm_mutex_lock ( rtd );
444444
445445 ret = snd_soc_dai_compr_ack (cpu_dai , cstream , bytes );
446446 if (ret < 0 )
447447 goto err ;
448448
449449 ret = snd_soc_component_compr_ack (cstream , bytes );
450450err :
451- mutex_unlock ( & rtd -> card -> pcm_mutex );
451+ snd_soc_dpcm_mutex_unlock ( rtd );
452452 return ret ;
453453}
454454
@@ -459,15 +459,15 @@ static int soc_compr_pointer(struct snd_compr_stream *cstream,
459459 int ret ;
460460 struct snd_soc_dai * cpu_dai = asoc_rtd_to_cpu (rtd , 0 );
461461
462- mutex_lock_nested ( & rtd -> card -> pcm_mutex , rtd -> card -> pcm_subclass );
462+ snd_soc_dpcm_mutex_lock ( rtd );
463463
464464 ret = snd_soc_dai_compr_pointer (cpu_dai , cstream , tstamp );
465465 if (ret < 0 )
466466 goto out ;
467467
468468 ret = snd_soc_component_compr_pointer (cstream , tstamp );
469469out :
470- mutex_unlock ( & rtd -> card -> pcm_mutex );
470+ snd_soc_dpcm_mutex_unlock ( rtd );
471471 return ret ;
472472}
473473
0 commit comments