Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2bf63a3 authored by Vaibhav Agarwal's avatar Vaibhav Agarwal Committed by Akash Choudhari
Browse files

greybus: audio: acquire wakelock during active playback



use pm_stay_awake & pm_relax to avoid suspend sequence during
active playback

testing Done:
Music Playback ongoing
$ cat /sys/devices/soc.0/qcom,ara-codec.82/power/wakeup_active
1
Music Playback stopped
$ cat /sys/devices/soc.0/qcom,ara-codec.82/power/wakeup_active
0

Tested-by: default avatarDavid Lin <dtwlin@google.com>
Reviewed-by: default avatarDavid Lin <dtwlin@google.com>
Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarAkash Choudhari <akashtc@google.com>
Signed-off-by: default avatarVaibhav Agarwal <vaibhav.agarwal@linaro.org>
parent f35fdb2f
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
 */
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pm_runtime.h>
#include <sound/soc.h>
#include <sound/pcm_params.h>
#include <uapi/linux/input.h>
@@ -388,6 +389,8 @@ static int gbcodec_startup(struct snd_pcm_substream *substream,
	codec->stream[substream->stream].state = state;
	codec->stream[substream->stream].dai_name = dai->name;
	mutex_unlock(&codec->lock);
	/* to prevent suspend in case of active audio */
	pm_stay_awake(dai->dev);

	return ret;
}
@@ -470,6 +473,7 @@ static void gbcodec_shutdown(struct snd_pcm_substream *substream,
	codec->stream[substream->stream].state = state;
	codec->stream[substream->stream].dai_name = NULL;
	mutex_unlock(&codec->lock);
	pm_relax(dai->dev);
	return;
}

@@ -1094,7 +1098,7 @@ static int gbcodec_probe(struct snd_soc_codec *codec)
	snd_soc_codec_set_drvdata(codec, info);
	gbcodec = info;

	/* Empty function for now */
        device_init_wakeup(codec->dev, 1);
	return 0;
}