ASoC: SOF: pcm: remove runtime PM calls during pcm open/close
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Thu, 9 May 2019 20:10:24 +0000 (15:10 -0500)
committerMark Brown <broonie@kernel.org>
Mon, 13 May 2019 11:42:41 +0000 (12:42 +0100)
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>
sound/soc/sof/pcm.c

index 649968841dad9f59078155b4c2cb3c2bd081c8f1..4f536c0de0a55f40c627e178c2622d542a246138 100644 (file)
@@ -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;
 }