Re: [PATCH 7/7] ASoC: soc-pcm: Merge CPU/Codec at soc_pcm_pointer()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Pierre-Louis

Thank you for your review

> The max() used between all cpu or codec dais for the same dailink is
> largely defensive programming, in practice it's not clear to me if we
> have different delays reported by differents codec or cpu_dais. I
> would expect all cpu dais in the same dailink to report the same
> delay, and likewise all codecs dais in the same dailink should provide
> the same value.
> 
> Now doing a max between cpu and codec dais does not seem right to
> me. You may have a delay in a DSP and a delay in a codec, and worst
> case the delay is the total of the two. It wouldn't matter too much
> with a 'simple' codec with limited buffering, but the moment the codec
> itself has a DSP and internal buffering this change in accounting
> would introduce a real offset.
(snip)
> > -	for_each_rtd_cpu_dais(rtd, i, cpu_dai) {
> > -		cpu_delay = max(cpu_delay,
> > -				snd_soc_dai_delay(cpu_dai, substream));
> > -	}
> > -	delay += cpu_delay;
> > -
> > -	for_each_rtd_codec_dais(rtd, i, codec_dai) {
> > -		codec_delay = max(codec_delay,
> > -				  snd_soc_dai_delay(codec_dai, substream));
> > -	}
> > -	delay += codec_delay;
> > +	for_each_rtd_dais(rtd, i, dai)
> > +		add_delay = max(add_delay,
> > +				snd_soc_dai_delay(dai, substream));
> >   -	runtime->delay = delay;
> > +	/* base delay if assigned in pointer callback */
> > +	runtime->delay += add_delay;
> >     	return offset;

Hmm.. ? Indeed...
Why I merged these ??
Thank you for pointing it. This patch is indeed wrong.
Will remove it in v2.

Thank you for your help !!

Best regards
---
Kuninori Morimoto



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux