[PATCH v2 1/2] ALSA: hda: Reduce udelay() at SKL+ position reporting

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Wed Sep 29 16:53:48 CEST 2021



On 9/29/21 9:39 AM, Takashi Iwai wrote:
> On Wed, 29 Sep 2021 16:15:44 +0200,
> Pierre-Louis Bossart wrote:
>>
>>
>>> @@ -874,11 +896,7 @@ static unsigned int azx_get_pos_skl(struct azx *chip, struct azx_dev *azx_dev)
>>>  	if (azx_dev->core.substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
>>>  		return azx_skl_get_dpib_pos(chip, azx_dev);
>>>  
>>> -	/* For capture, we need to read posbuf, but it requires a delay
>>> -	 * for the possible boundary overlap; the read of DPIB fetches the
>>> -	 * actual posbuf
>>> -	 */
>>> -	udelay(20);
>>> +	/* read of DPIB fetches the actual posbuf */
>>>  	azx_skl_get_dpib_pos(chip, azx_dev);
>>
>> I don't think extra read has any effect, it could be removed....
>>
>>>  	return azx_get_pos_posbuf(chip, azx_dev);
>>>  }
>>
>> The suggestion was to further simplify with
>>
>> static unsigned int azx_get_pos_skl(struct azx *chip, struct azx_dev
>> *azx_dev)
>> {
>> 	return azx_get_pos_posbuf(chip, azx_dev);
>> }
>>
>> i.e. same behavior on playback and capture. that's the recommendation
>> from Intel hw folks.
> 
> It's achieved in the second patch.

Ah ok. the additional comment made me think it was there to stay.


More information about the Alsa-devel mailing list