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. Takashi