On 2010-08-31 17:57, Colin Guthrie wrote:
'Twas brillig, and pl bossart at 19/08/10 14:52 did gyre and gimble:
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.


Don't want to lose momentum on this patch, so just poking about.

Good initiative.

What is the next stage here?

Probably either one will work, but if we're about to release 0.9.22 (heard something from Lennart yet?), I suggest we go with my version for 0.9.22 as that one is the least invasive (only touches non-tsched devices), and keep Pierre's version in master.

--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@mail.0pointer.de
https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss

Reply via email to