On 2017年08月01日 11:30, Vinod Koul wrote:
On Mon, Jul 31, 2017 at 06:47:34PM +0800, Cheng-Yi Chiang wrote:
From: "U. Artie Eoff" <ullysses.a.e...@intel.com>

Reset the hw_ptr before queuing the restore_stream_context
work to eradicate a nasty white audio noise on resume.

Liam, Jie? This on legacy BYT driver..


Tested-by: Cheng-Yi Chiang <cychi...@chromium.org>
Signed-off-by: U. Artie Eoff <ullysses.a.e...@intel.com>
Signed-off-by: Cheng-Yi Chiang <cychi...@chromium.org>
---
  sound/soc/intel/baytrail/sst-baytrail-pcm.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/soc/intel/baytrail/sst-baytrail-pcm.c 
b/sound/soc/intel/baytrail/sst-baytrail-pcm.c
index 4765ad474544..e0db7070cd42 100644
--- a/sound/soc/intel/baytrail/sst-baytrail-pcm.c
+++ b/sound/soc/intel/baytrail/sst-baytrail-pcm.c
@@ -187,8 +187,10 @@ static int sst_byt_pcm_trigger(struct snd_pcm_substream 
*substream, int cmd)
                sst_byt_stream_start(byt, pcm_data->stream, 0);
                break;
        case SNDRV_PCM_TRIGGER_RESUME:
-               if (pdata->restore_stream == true)
+               if (pdata->restore_stream == true) {
+                       pcm_data->hw_ptr = 0;

Won't this break the hw_ptr and make the resuming won't play from the pausing point of the last suspending?

Thanks,
~Keyon

                        schedule_work(&pcm_data->work);
+               }
                else
                        sst_byt_stream_resume(byt, pcm_data->stream);
                break;
--
2.12.2


Reply via email to