On Tue, Mar 20, 2012 at 3:20 PM, Jarkko Nikula jarkko.nikula@bitmer.com wrote:
On 03/20/2012 06:42 PM, Grazvydas Ignotas wrote:
This is what we have in pandora tree now: http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=commitd... Seems to work well for everything here.
To me this looks more like a correct fix. At quick test I got single xrun when starting up but not endless loop of them. Maybe need to tune a bit with CONFIG_SND_PCM_XRUN_DEBUG=y.
Does the ALSA API allow the driver to change start_threshold in the prepare function? It seems what is needed is a minimum start_threshold constraint, but there aren't constaints for sw_params.
With that fix, you could have an app set start_threshold to 50 ms, write 51 ms of audio, and expect the stream to start. But it won't, because the driver has increased start_threshold. The app could have read back start_threshold from the driver, but I doubt any apps do this, since there is nothing in the documentation about that being necessary.