aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorThibault Le Meur <Thibault.LeMeur@supelec.fr>2007-07-12 05:26:35 -0400
committerJaroslav Kysela <perex@suse.cz>2007-07-20 05:11:50 -0400
commitf8c78b82b9e47d933629e7060e4a83a277b15ffe (patch)
treebebe05fcce9dc70f5b6fea2459e3950ca909b1e0 /sound/usb
parentbe38114a49853e441e694d690e631937de5fc524 (diff)
[ALSA] usb-audio - Fix audiophile-USB quirk for little-endian
Audiophile-usb fix (corrects little-endianness in 16bit modes, resets interfaces at device initialization, and updates the documentation). Signed-off-by: Thibault Le Meur <Thibault.LeMeur@supelec.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/usbaudio.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index 8ebc1adb5ed..834b0aff5ec 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -2350,7 +2350,9 @@ static int is_big_endian_format(struct snd_usb_audio *chip, struct audioformat *
2350 return 1; 2350 return 1;
2351 break; 2351 break;
2352 case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */ 2352 case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
2353 return 1; 2353 if (device_setup[chip->index] == 0x00 ||
2354 fp->altsetting==1 || fp->altsetting==2 || fp->altsetting==3)
2355 return 1;
2354 } 2356 }
2355 return 0; 2357 return 0;
2356} 2358}
@@ -3251,6 +3253,11 @@ static int snd_usb_cm106_boot_quirk(struct usb_device *dev)
3251static int audiophile_skip_setting_quirk(struct snd_usb_audio *chip, 3253static int audiophile_skip_setting_quirk(struct snd_usb_audio *chip,
3252 int iface, int altno) 3254 int iface, int altno)
3253{ 3255{
3256 /* Reset ALL ifaces to 0 altsetting.
3257 * Call it for every possible altsetting of every interface.
3258 */
3259 usb_set_interface(chip->dev, iface, 0);
3260
3254 if (device_setup[chip->index] & AUDIOPHILE_SET) { 3261 if (device_setup[chip->index] & AUDIOPHILE_SET) {
3255 if ((device_setup[chip->index] & AUDIOPHILE_SET_DTS) 3262 if ((device_setup[chip->index] & AUDIOPHILE_SET_DTS)
3256 && altno != 6) 3263 && altno != 6)