OpenCloudOS-Kernel/sound
Pierre-Louis Bossart 294c4fb8ab ALSA: usb: refine delay information with USB frame counter
Existing code only updates the audio delay when URBs were
submitted/retired. This can introduce an uncertainty of 8ms
on the number of samples played out with the default settings,
and a lot more when URBs convey more packets to reduce the
interrupt rate and power consumption.

This patch relies on the USB frame counter to reduce the
uncertainty to less than 2ms worst-case. The delay information
essentially becomes independent of the URB size and number of
packets. This should help applications like PulseAudio which
require accurate audio timing. Clemens Ladisch reported
a decrease of mplayer's A-V difference from nrpacks down to at
most 1ms.

Thanks to Clemens for also pointing out that the implementation
of frame counters varies between different HCDs. Only the
8 lowest-bits are used to estimate the delay.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
[clemens: changed debug code]
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-12 10:30:20 +02:00
..
aoa treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
arm Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.39 2011-04-03 19:28:29 +09:00
atmel Merge branch 'master' into for-next 2011-07-11 14:15:55 +02:00
core ALSA: core: release the constraint check for replace ops 2011-08-24 10:22:43 +02:00
drivers i8253: Make pcsp sound driver use the shared i8253_lock 2011-06-09 15:01:39 +02:00
firewire ALSA: isight: remove superfluous field 2011-08-15 13:35:13 +02:00
i2c [media] tea575x: remove useless input ioctls 2011-07-27 17:53:08 -03:00
isa snd_msnd ->mode is fmode_t, not mode_t 2011-07-26 12:59:29 -04:00
mips sound: Add missing spin_unlock 2010-05-27 09:47:02 +02:00
oss sound: pss - don't use the deprecated function check_region 2011-08-08 14:29:36 +02:00
parisc ALSA: sound/parisc: Move dereference after NULL test 2009-10-30 12:01:38 +01:00
pci ALSA: ctxfi: Bump playback substreams to 256 2011-08-24 10:39:44 +02:00
pcmcia ALSA: pcmcia - Use pcmcia_request_irq() 2011-07-08 10:11:35 +02:00
ppc treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
sh sound: sh: ctrl_in/outX to __raw_read/writeX conversion. 2010-10-27 15:53:50 +09:00
soc ASoC: Fix compile warning in wm8750.c 2011-08-12 18:22:10 +02:00
sparc atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
spi ALSA: atmel - update author email for ABDAC, AC97C and AT73C213 2011-06-28 16:56:07 +02:00
synth ALSA: emux: Add trivial compat ioctl handler 2010-09-14 16:18:11 +02:00
usb ALSA: usb: refine delay information with USB frame counter 2011-09-12 10:30:20 +02:00
Kconfig ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
Makefile ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
ac97_bus.c sound: Fixed line limit issue in sound/ac97_bus.c 2010-12-06 16:09:49 +01:00
last.c
sound_core.c sound: Use sound_register_*() for additional OSS minor devices 2011-03-09 20:10:37 +01:00
sound_firmware.c sound: read i_size with i_size_read() 2011-03-18 15:14:57 +01:00