21.09.2014 15:53, Clemens Ladisch wrote: > Raymond Yau wrote: >> Does snd-oxygen provide this position with granularity which is less than >> the minimum period size ? > > Yes. Its DMA controller uses a burst size of 32 bytes. The pointer registers > are documented as reporting the position with 4-byte accuracy, but there were > problems when the period/buffer sizes were not aligned to 32 bytes. I've set > the minimum period size to 64 bytes, just to be safe. Well, my friend has tested the card anyway, and I am afraid that the situation is in fact more complex than documented. Look how fast (8 samples per ioctl in a busy loop!) the card eats the first 256 samples. This is very suspicious, and I am not really sure whether we can actually perform a rewind over these 256 samples. The "usual" step of the pointer updates (via snd_pcm_avail) is indeed 8 samples = 32 bytes with some fine-grained updates sometimes showing up in the middle, which matches the documented burst size. -- Alexander E. Patrakov