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

Commit 2dd49f8e authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'asoc/topic/pcm' into asoc-next

parents 804c0a95 3f809783
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -599,10 +599,15 @@ static int soc_pcm_open(struct snd_pcm_substream *substream)
out:
	mutex_unlock(&rtd->pcm_mutex);

	pm_runtime_put(platform->dev);
	for (i = 0; i < rtd->num_codecs; i++)
		pm_runtime_put(rtd->codec_dais[i]->dev);
	pm_runtime_put(cpu_dai->dev);
	pm_runtime_mark_last_busy(platform->dev);
	pm_runtime_put_autosuspend(platform->dev);
	for (i = 0; i < rtd->num_codecs; i++) {
		pm_runtime_mark_last_busy(rtd->codec_dais[i]->dev);
		pm_runtime_put_autosuspend(rtd->codec_dais[i]->dev);
	}

	pm_runtime_mark_last_busy(cpu_dai->dev);
	pm_runtime_put_autosuspend(cpu_dai->dev);
	for (i = 0; i < rtd->num_codecs; i++) {
		if (!rtd->codec_dais[i]->active)
			pinctrl_pm_select_sleep_state(rtd->codec_dais[i]->dev);
@@ -706,10 +711,17 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)

	mutex_unlock(&rtd->pcm_mutex);

	pm_runtime_put(platform->dev);
	for (i = 0; i < rtd->num_codecs; i++)
		pm_runtime_put(rtd->codec_dais[i]->dev);
	pm_runtime_put(cpu_dai->dev);
	pm_runtime_mark_last_busy(platform->dev);
	pm_runtime_put_autosuspend(platform->dev);

	for (i = 0; i < rtd->num_codecs; i++) {
		pm_runtime_mark_last_busy(rtd->codec_dais[i]->dev);
		pm_runtime_put_autosuspend(rtd->codec_dais[i]->dev);
	}

	pm_runtime_mark_last_busy(cpu_dai->dev);
	pm_runtime_put_autosuspend(cpu_dai->dev);

	for (i = 0; i < rtd->num_codecs; i++) {
		if (!rtd->codec_dais[i]->active)
			pinctrl_pm_select_sleep_state(rtd->codec_dais[i]->dev);