{
struct hdmi_audio_data *ad = dev_get_drvdata(dev);
- mutex_lock(&ad->current_stream_lock);
+ guard(mutex)(&ad->current_stream_lock);
if (ad->current_stream && ad->current_stream->runtime &&
snd_pcm_running(ad->current_stream)) {
dev_err(dev, "HDMI display disabled, aborting playback\n");
snd_pcm_stop(ad->current_stream, SNDRV_PCM_STATE_DISCONNECTED);
snd_pcm_stream_unlock_irq(ad->current_stream);
}
- mutex_unlock(&ad->current_stream_lock);
}
static int hdmi_dai_startup(struct snd_pcm_substream *substream,
snd_soc_dai_set_dma_data(dai, substream, &ad->dma_data);
- mutex_lock(&ad->current_stream_lock);
- ad->current_stream = substream;
- mutex_unlock(&ad->current_stream_lock);
+ scoped_guard(mutex, &ad->current_stream_lock)
+ ad->current_stream = substream;
ret = ad->ops->audio_startup(ad->dssdev, hdmi_dai_abort);
if (ret) {
- mutex_lock(&ad->current_stream_lock);
- ad->current_stream = NULL;
- mutex_unlock(&ad->current_stream_lock);
+ scoped_guard(mutex, &ad->current_stream_lock)
+ ad->current_stream = NULL;
}
return ret;
ad->ops->audio_shutdown(ad->dssdev);
- mutex_lock(&ad->current_stream_lock);
- ad->current_stream = NULL;
- mutex_unlock(&ad->current_stream_lock);
+ scoped_guard(mutex, &ad->current_stream_lock)
+ ad->current_stream = NULL;
}
static const struct snd_soc_dai_ops hdmi_dai_ops = {