]> code.delx.au - pulseaudio/commit
alsa: Disable timer-scheduling for PCMs with the BATCH flag
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 30 Nov 2013 17:07:24 +0000 (18:07 +0100)
committerTanu Kaskinen <tanu.kaskinen@linux.intel.com>
Fri, 6 Dec 2013 10:58:03 +0000 (12:58 +0200)
commit826c8f69d34ef49e86fe0ab6c93c1ffba8916131
tree8f89e440ea91cfbcd49b60693e2189402c271b5a
parentc00ba036dcadf5e31ca25212e68511902bec6807
alsa: Disable timer-scheduling for PCMs with the BATCH flag

PCM Devices which have the BATCH flag set update the PCM pointer only with
period size granularity. Using timer based scheduling does not have any
advantage in this mode. For one devices which have that flag set usually update
the position pointer in software after getting the period interrupt. So
disabling the period interrupt is not possible for this kind of devices.
Furthermore writing to or reading from the buffer slice for the current period
is not possible since the position inside the buffer is not known. On the other
hand the tsched algorithm seems to get easily confused for this kind of
hardware, which results in garbled audio output. This typically means that timer
based scheduling needs to be manually disabled on systems with such devices.
Auto disabling tsched in this case allows these systems to run with the default
configuration.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
src/modules/alsa/alsa-util.c