aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/usbaudio.h
diff options
context:
space:
mode:
authorJohn S. Gruber <JohnSGruber@gmail.com>2009-12-27 12:19:58 -0500
committerTakashi Iwai <tiwai@suse.de>2009-12-28 06:30:41 -0500
commit98e89f606c38a310a20342f90e0c453e6afadf18 (patch)
treeed5a677157cf5bdd781c04e986813f112c6bf72c /sound/usb/usbaudio.h
parentadc8d31326c32a2a1e145ab80accbc3c6570b117 (diff)
ALSA: usb-audio: relax urb data align. restriction HVR-950Q and HVR-850 only
Addressing audio quality problem. In sound/usb/usbaudio.c, for the Hauppage HVR-950Q and HVR-850 only, change retire_capture_urb to allow transfers on audio sub-slot boundaries rather than audio slots boundaries. With these devices the left and right channel samples can be split between two different urbs. Throwing away extra channel samples causes a sound quality problem for stereo streams as the left and right channels are swapped repeatedly, perhaps many times per second. Urbs unaligned on sub-slot boundaries are still truncated to the next lowest stride (audio slot) to retain synchronization on samples even though left/right channel synchronization may be lost in this case. Detect the quirk using a case statement in snd_usb_audio_probe. BugLink: https://bugs.launchpad.net/ubuntu/+bug/495745 Signed-off-by: John S. Gruber <JohnSGruber@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/usbaudio.h')
-rw-r--r--sound/usb/usbaudio.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
index 152216738cce..d180554b81f0 100644
--- a/sound/usb/usbaudio.h
+++ b/sound/usb/usbaudio.h
@@ -125,6 +125,7 @@ struct snd_usb_audio {
125 struct snd_card *card; 125 struct snd_card *card;
126 u32 usb_id; 126 u32 usb_id;
127 int shutdown; 127 int shutdown;
128 unsigned int txfr_quirk:1; /* Subframe boundaries on transfers */
128 int num_interfaces; 129 int num_interfaces;
129 int num_suspended_intf; 130 int num_suspended_intf;
130 131