substream->number);
/* Ensure configuration consistency between DAIs */
- mutex_lock(&mop500_ab8500_params_lock);
- if (mop500_ab8500_usage) {
- if (mop500_ab8500_rate != params_rate(params) ||
- mop500_ab8500_channels != params_channels(params)) {
- mutex_unlock(&mop500_ab8500_params_lock);
- return -EBUSY;
+ scoped_guard(mutex, &mop500_ab8500_params_lock) {
+ if (mop500_ab8500_usage) {
+ if (mop500_ab8500_rate != params_rate(params) ||
+ mop500_ab8500_channels != params_channels(params)) {
+ return -EBUSY;
+ }
+ } else {
+ mop500_ab8500_rate = params_rate(params);
+ mop500_ab8500_channels = params_channels(params);
}
- } else {
- mop500_ab8500_rate = params_rate(params);
- mop500_ab8500_channels = params_channels(params);
+ __set_bit(cpu_dai->id, &mop500_ab8500_usage);
}
- __set_bit(cpu_dai->id, &mop500_ab8500_usage);
- mutex_unlock(&mop500_ab8500_params_lock);
channels = params_channels(params);
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);
- mutex_lock(&mop500_ab8500_params_lock);
+ guard(mutex)(&mop500_ab8500_params_lock);
__clear_bit(cpu_dai->id, &mop500_ab8500_usage);
- mutex_unlock(&mop500_ab8500_params_lock);
return 0;
}