Re: es1938 - patch trying to improve capture hw pointer reads

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

 



At Fri, 25 Jan 2008 17:29:28 +0100,
Hermann Lauer wrote:
> 
> On Fri, Jan 25, 2008 at 05:19:52PM +0100, Takashi Iwai wrote:
> 
> > > If I interpreted my tests output correctly, the last byte of a period
> > > is written by the DMA engine after the interrupt occurs. So the
> > > hw pointer probably has to be decremented by one and is then
> > > pointing to the last frame (Or even that before: Has the hw pointer to point
> > > at the frame which is written at the moment or the one which is
> > > guaranteed to be written completely by the hardware ?)
> > 
> > This sounds a bit odd.  Isn't it rather the setup of the hardware
> > parameter wrong?  I mean, the count calculation in *_prepare() can be
> > the size - 1?  
> 
> At least according to the datasheet the size calculation is correct.
> Could you please tell me where the hw pointer exactly should point to ?

The hwptr is the position of the current DMA.  The data below that
point must have been already processed.  That's why hwptr returned in
snd_pcm_period_elapsed() must be on the period boundary or above.

OTOH, it doesn't matter much whether the data above hwptr has been
processed or not, e.g. a sloppy pointer callback.


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

  Powered by Linux