forked from Minki/linux
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: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
5160217ba6
commit
14a2212dd4
@ -416,7 +416,6 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
|
||||
struct snd_sof_pcm *spcm;
|
||||
struct snd_soc_tplg_stream_caps *caps;
|
||||
int ret;
|
||||
int err;
|
||||
|
||||
/* nothing to do for BE */
|
||||
if (rtd->dai_link->no_pcm)
|
||||
@ -434,14 +433,6 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
|
||||
|
||||
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 */
|
||||
snd_pcm_hw_constraint_step(substream->runtime, 0,
|
||||
SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
|
||||
@ -485,17 +476,8 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
|
||||
spcm->stream[substream->stream].substream = substream;
|
||||
|
||||
ret = snd_sof_pcm_platform_open(sdev, substream);
|
||||
if (ret < 0) {
|
||||
dev_err(sdev->dev, "error: pcm open failed %d\n",
|
||||
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);
|
||||
}
|
||||
if (ret < 0)
|
||||
dev_err(sdev->dev, "error: pcm open failed %d\n", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user