--------------------- PatchSet 3161 Date: 2005/05/09 09:20:31 Author: cladisch Branch: HEAD Tag: (none) Log: Summary: usb-audio - enable high speed (not) on Audigy 2 NX 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. Members: usb/usbaudio.c:1.128->1.129 Index: /sound/usb/usbaudio.c diff -u /sound/usb/usbaudio.c.old /sound/usb/usbaudio.c --- /sound/usb/usbaudio.c.old Wed May 4 06:56:04 2005 +++ /sound/usb/usbaudio.c Mon May 9 01:20:31 2005 @@ -2925,6 +2925,25 @@ return 0; } +static int snd_usb_audigy2nx_boot_quirk(struct usb_device *dev) +{ +#if 0 + /* TODO: enable this when high speed synchronization actually works */ + u8 buf = 1; + + snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), 0x2a, + USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER, + 0, 0, &buf, 1, 1000); + if (buf == 0) { + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), 0x29, + USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER, + 1, 2000, NULL, 0, 1000); + return -ENODEV; + } +#endif + return 0; +} + /* * audio-interface quirks @@ -3154,6 +3173,11 @@ goto __err_val; config = dev->actconfig; } + /* SB Audigy 2 NX needs its own boot-up magic, too */ + if (id == USB_ID(0x041e, 0x3020)) { + if (snd_usb_audigy2nx_boot_quirk(dev) < 0) + goto __err_val; + } /* * found a config. now register to ALSA