1
linux/sound
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
..
aoa
arm ALSA: pxa27x: rename pxa27x_assert_ac97reset() 2013-01-08 11:30:08 +00:00
atmel ALSA: atmel: remove __dev* attributes 2012-12-07 07:22:12 +01:00
core ALSA: seq: Fix missing error handling in snd_seq_timer_open() 2013-03-11 09:40:36 +01:00
drivers Merge branch 'for-linus' into for-next 2013-02-05 14:48:03 +01:00
firewire ALSA: firewire-speakers: remove __dev* attributes 2012-12-07 07:29:30 +01:00
i2c ALSA: Fix typo in drivers sound 2012-11-04 09:20:58 +01:00
isa ALSA: Remove the rest of __devinit* in comments 2012-12-07 07:41:56 +01:00
mips ALSA: mips: remove __dev* attributes 2012-12-07 07:29:45 +01:00
oss sound: sequencer: cap array index in seq_chn_common_event() 2013-03-15 07:45:20 +01:00
parisc ALSA: parisc/harmony: remove __dev* attributes 2012-12-07 07:30:11 +01:00
pci ALSA: hda - bug fix on HDMI ELD debug message 2013-04-02 11:55:55 +02:00
pcmcia
ppc ALSA: ppc: remove __dev* attributes 2012-12-07 07:33:30 +01:00
sh ALSA: sh: remove __dev* attributes 2012-12-07 07:33:47 +01:00
soc Merge remote-tracking branch 'asoc/fix/spear' into asoc-next 2013-03-26 14:08:07 +00:00
sparc ALSA: sparc: remove __dev* attributes 2012-12-07 07:34:04 +01:00
spi ALSA: at73c213: remove __dev* attributes 2012-12-07 07:34:13 +01:00
synth
usb ALSA: usb: Work around CM6631 sample rate change bug 2013-04-03 17:05:44 +02:00
ac97_bus.c
Kconfig sound: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
last.c ALSA: Remove the last mention of SNDRV_MAIN_OBJECT_FILE 2012-09-03 10:07:23 +02:00
Makefile
sound_core.c sound: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
sound_firmware.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00