linux/sound/usb
Torstein Hegge 690a863ff0 ALSA: usb: Work around CM6631 sample rate change bug
The C-Media CM6631 USB receiver doesn't respond to changes in sample rate
while the interface is active. The same behavior is observed in other UAC2
hardware like the VIA VT1731.

Reset the interface after setting the sampling frequency on sample rate
changes, to ensure that the sample rate set by snd_usb_init_sample_rate() is
used. Otherwise, the device will try to use the sample rate of the previous
stream, causing distorted sound on sample rate changes.

The reset is performed for all UAC2 devices, as it should not affect a
standards compliant device, but it is only necessary for C-Media CM6631,
VIA VT1731 and possibly others.

Failure to read sample rate from the device is not handled as an error in
set_sample_rate_v2(), as (permanent or intermittent) failure to read sample
rate isn't essential for a successful sample rate set.

Signed-off-by: Torstein Hegge <hegge@resisty.net>
Acked-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-04-03 17:05:44 +02:00
..
6fire ALSA: usb6fire: prevent driver panic state when stopping 2012-12-07 15:03:34 +01:00
caiaq ALSA: caiaq: fix use of MODULE_SUPPORTED_DEVICES() 2013-01-29 15:10:57 +01:00
misc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2012-01-12 08:00:30 -08:00
usx2y mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
card.c ALSA: usb-audio: add a workaround for the NuForce UDH-100 2013-03-12 08:35:30 +01:00
card.h ALSA: usb-audio: add channel map support 2012-11-26 16:24:02 +01:00
clock.c ALSA: usb: Work around CM6631 sample rate change bug 2013-04-03 17:05:44 +02:00
clock.h
debug.h
endpoint.c ALSA: usb-audio: use sender stride for implicit feedback 2012-11-29 08:42:54 +01:00
endpoint.h ALSA: usb-audio: stop both data and sync endpoints asynchronously 2012-11-21 11:43:56 +01:00
format.c ALSA: usb-audio: Return meaningful error codes instead of -1 in format.c 2012-11-21 11:31:52 +01:00
format.h
helper.c ALSA: snd-usb: Add quirks for Playback Designs devices 2012-09-04 11:31:14 +02:00
helper.h ALSA: usb-audio: increase control transfer timeout 2011-09-27 09:21:48 +02:00
Kconfig ALSA: sound/usb: remove CONFIG_EXPERIMENTAL 2012-10-25 00:17:47 +02:00
Makefile ALSA: snd-usb: move code from urb.c to endpoint.c 2011-09-14 17:07:03 +02:00
midi.c ALSA: usb-audio: Fix kernel panic of Digidesign Mbox2 quirk 2013-01-04 09:53:17 +01:00
midi.h
mixer_maps.c ALSA: usb-audio: add support for M-Audio FT C600 2013-02-11 14:02:27 +01:00
mixer_quirks.c ALSA: usb-audio: add support for M-Audio FT C600 2013-02-11 14:02:27 +01:00
mixer_quirks.h
mixer.c ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls() 2013-03-20 08:43:00 +01:00
mixer.h ALSA: usb-audio: add control index offset 2012-11-29 08:43:12 +01:00
pcm.c ALSA: usb-audio: add support for M-Audio FT C600 2013-02-11 14:02:27 +01:00
pcm.h ALSA: usb: refine delay information with USB frame counter 2011-09-12 10:30:20 +02:00
power.h
proc.c ALSA: usb-audio: Fix races at disconnection 2012-10-30 11:06:54 +01:00
proc.h
quirks-table.h ALSA: usb-audio: add support for M-Audio FT C600 2013-02-11 14:02:27 +01:00
quirks.c ALSA: usb/quirks, fix out-of-bounds access 2013-02-17 18:02:00 +01:00
quirks.h ALSA: snd-usb: Add quirks for Playback Designs devices 2012-09-04 11:31:14 +02:00
stream.c ALSA: usb-audio: add channel map support 2012-11-26 16:24:02 +01:00
stream.h ALSA: snd-usb: re-order code 2011-09-14 17:07:02 +02:00
usbaudio.h ALSA: usb-audio: Fix kernel panic of Digidesign Mbox2 quirk 2013-01-04 09:53:17 +01:00