>> Assuming your reasoning is correct (I'm not that deep into DMA yet), >> this should be fixed in the kernel - by not allowing rewinds further >> back than 128 (or 256) bytes ahead of actual position. >> You say HDA can transfer up to 128 bytes in advance, but what about all >> the other drivers? Could there be other drivers having a lot larger DMA >> fetches? > > What's the role of snd_pcm_rewindable()[1]? The documentation says "Get > safe count of frames which can be rewinded", which sounds to me like the > function should always be called before snd_pcm_rewind(). Currently PA > doesn't call _rewindable(). Yes it should be fixed in the kernel, but the DMA transfer size is not necessarily documented and known. Worse, it can vary depending on the mode. So until the kernel folks figure out a solution, and said solution works for all know drivers, this patch is mandatory on the PulseAudio side. -Pierre