aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/usbaudio.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2005-05-09 03:20:31 -0400
committerJaroslav Kysela <perex@suse.cz>2005-05-29 04:06:28 -0400
commit3a2f08560d61e267aacddc63c26bf997d0d85e91 (patch)
tree5ce7ecbb0e6c81ea249e998fbf0fef06a1d9f82d /sound/usb/usbaudio.c
parent3714b5344e2da58d18f0b885663226826c22a1b3 (diff)
[ALSA] usb-audio - enable high speed (not) on Audigy 2 NX
USB generic driver The SB Audigy 2 NX needs a special boot-up command before it works in high speed mode. However, we don't actually enable it yet because high speed synchronization doesn't seem to work with this device. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Diffstat (limited to 'sound/usb/usbaudio.c')
-rw-r--r--sound/usb/usbaudio.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index da1fe0f0bca0..34d5f58985b6 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -2925,6 +2925,25 @@ static int snd_usb_extigy_boot_quirk(struct usb_device *dev, struct usb_interfac
2925 return 0; 2925 return 0;
2926} 2926}
2927 2927
2928static int snd_usb_audigy2nx_boot_quirk(struct usb_device *dev)
2929{
2930#if 0
2931 /* TODO: enable this when high speed synchronization actually works */
2932 u8 buf = 1;
2933
2934 snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), 0x2a,
2935 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER,
2936 0, 0, &buf, 1, 1000);
2937 if (buf == 0) {
2938 snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), 0x29,
2939 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER,
2940 1, 2000, NULL, 0, 1000);
2941 return -ENODEV;
2942 }
2943#endif
2944 return 0;
2945}
2946
2928 2947
2929/* 2948/*
2930 * audio-interface quirks 2949 * audio-interface quirks
@@ -3154,6 +3173,11 @@ static void *snd_usb_audio_probe(struct usb_device *dev,
3154 goto __err_val; 3173 goto __err_val;
3155 config = dev->actconfig; 3174 config = dev->actconfig;
3156 } 3175 }
3176 /* SB Audigy 2 NX needs its own boot-up magic, too */
3177 if (id == USB_ID(0x041e, 0x3020)) {
3178 if (snd_usb_audigy2nx_boot_quirk(dev) < 0)
3179 goto __err_val;
3180 }
3157 3181
3158 /* 3182 /*
3159 * found a config. now register to ALSA 3183 * found a config. now register to ALSA