Commit 14a2212d authored by Ranjani Sridharan's avatar Ranjani Sridharan Committed by Mark Brown

ASoC: SOF: pcm: remove runtime PM calls during pcm open/close

pm_runtime_get_sync()/pm_runtime_put_autosuspend() calls are
already invoked by the ASoC core in soc_pcm_open() and
soc_pcm_close(). So the SOF component driver does not need
to call them again.
Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5160217b
...@@ -416,7 +416,6 @@ static int sof_pcm_open(struct snd_pcm_substream *substream) ...@@ -416,7 +416,6 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
struct snd_sof_pcm *spcm; struct snd_sof_pcm *spcm;
struct snd_soc_tplg_stream_caps *caps; struct snd_soc_tplg_stream_caps *caps;
int ret; int ret;
int err;
/* nothing to do for BE */ /* nothing to do for BE */
if (rtd->dai_link->no_pcm) if (rtd->dai_link->no_pcm)
...@@ -434,14 +433,6 @@ static int sof_pcm_open(struct snd_pcm_substream *substream) ...@@ -434,14 +433,6 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
caps = &spcm->pcm.caps[substream->stream]; caps = &spcm->pcm.caps[substream->stream];
ret = pm_runtime_get_sync(sdev->dev);
if (ret < 0) {
dev_err(sdev->dev, "error: pcm open failed to resume %d\n",
ret);
pm_runtime_put_noidle(sdev->dev);
return ret;
}
/* set any runtime constraints based on topology */ /* set any runtime constraints based on topology */
snd_pcm_hw_constraint_step(substream->runtime, 0, snd_pcm_hw_constraint_step(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_BUFFER_BYTES, SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
...@@ -485,17 +476,8 @@ static int sof_pcm_open(struct snd_pcm_substream *substream) ...@@ -485,17 +476,8 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
spcm->stream[substream->stream].substream = substream; spcm->stream[substream->stream].substream = substream;
ret = snd_sof_pcm_platform_open(sdev, substream); ret = snd_sof_pcm_platform_open(sdev, substream);
if (ret < 0) { if (ret < 0)
dev_err(sdev->dev, "error: pcm open failed %d\n", dev_err(sdev->dev, "error: pcm open failed %d\n", ret);
ret);
pm_runtime_mark_last_busy(sdev->dev);
err = pm_runtime_put_autosuspend(sdev->dev);
if (err < 0)
dev_err(sdev->dev, "error: pcm close failed to idle %d\n",
err);
}
return ret; return ret;
} }
...@@ -530,13 +512,6 @@ static int sof_pcm_close(struct snd_pcm_substream *substream) ...@@ -530,13 +512,6 @@ static int sof_pcm_close(struct snd_pcm_substream *substream)
*/ */
} }
pm_runtime_mark_last_busy(sdev->dev);
err = pm_runtime_put_autosuspend(sdev->dev);
if (err < 0)
dev_err(sdev->dev, "error: pcm close failed to idle %d\n",
err);
return 0; return 0;
} }
......
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