[alsa-devel] [PATCH v2] ASoC: Intel: Reset hw_ptr on resume trigger

Keyon Jie yang.jie at linux.intel.com
Tue Aug 1 07:04:14 CEST 2017


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.eoff at 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 <cychiang at chromium.org>
>> Signed-off-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
>> Signed-off-by: Cheng-Yi Chiang <cychiang at 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
>>
> 


More information about the Alsa-devel mailing list