Commit 12ce5231 authored by Vaibhav Agarwal's avatar Vaibhav Agarwal Committed by Alex Elder

greybus: audio: Maintain proper codec state during shutdown sequence.

During shutdown sequence, in case all modules are already removed,
codec state is not updated. Though it's not causing any harm for now,
but it's good to maintain proper codec state. Fix this.
Signed-off-by: default avatarVaibhav Agarwal <vaibhav.agarwal@linaro.org>
Reviewed-by: Mark Greer <mgreer@animalcreek.com> 
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
parent cf1caac6
......@@ -460,6 +460,8 @@ static void gbcodec_shutdown(struct snd_pcm_substream *substream,
if (list_empty(&codec->module_list)) {
dev_err(codec->dev, "No codec module available\n");
codec->stream[substream->stream].state = GBAUDIO_CODEC_SHUTDOWN;
codec->stream[substream->stream].dai_name = NULL;
mutex_unlock(&codec->lock);
pm_relax(dai->dev);
return;
......@@ -733,8 +735,14 @@ static int gbcodec_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
mutex_lock(&codec->lock);
if (list_empty(&codec->module_list)) {
dev_err(codec->dev, "No codec module available\n");
if (mute) {
codec->stream[stream].state = GBAUDIO_CODEC_STOP;
ret = 0;
} else {
ret = -ENODEV;
}
mutex_unlock(&codec->lock);
return -ENODEV;
return ret;
}
list_for_each_entry(module, &codec->module_list, list) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment