diff options
-rw-r--r-- | sound/usb/endpoint.c | 2 | ||||
-rw-r--r-- | sound/usb/quirks-table.h | 54 | ||||
-rw-r--r-- | sound/usb/urb.c | 5 |
3 files changed, 61 insertions, 0 deletions
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index b1309cdc1ac0..7b84b61a0784 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c | |||
@@ -317,6 +317,8 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no) | |||
317 | break; | 317 | break; |
318 | case USB_ID(0x041e, 0x3020): /* Creative SB Audigy 2 NX */ | 318 | case USB_ID(0x041e, 0x3020): /* Creative SB Audigy 2 NX */ |
319 | case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */ | 319 | case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */ |
320 | case USB_ID(0x0763, 0x2080): /* M-Audio Fast Track Ultra 8 */ | ||
321 | case USB_ID(0x0763, 0x2081): /* M-Audio Fast Track Ultra 8R */ | ||
320 | /* doesn't set the sample rate attribute, but supports it */ | 322 | /* doesn't set the sample rate attribute, but supports it */ |
321 | fp->attributes |= UAC_EP_CS_ATTR_SAMPLE_RATE; | 323 | fp->attributes |= UAC_EP_CS_ATTR_SAMPLE_RATE; |
322 | break; | 324 | break; |
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 81c5f8a312ce..91ddef31bcbd 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h | |||
@@ -1826,6 +1826,60 @@ YAMAHA_DEVICE(0x7010, "UB99"), | |||
1826 | } | 1826 | } |
1827 | } | 1827 | } |
1828 | }, | 1828 | }, |
1829 | { | ||
1830 | USB_DEVICE(0x0763, 0x2080), | ||
1831 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { | ||
1832 | /* .vendor_name = "M-Audio", */ | ||
1833 | /* .product_name = "Fast Track Ultra 8", */ | ||
1834 | .ifnum = QUIRK_ANY_INTERFACE, | ||
1835 | .type = QUIRK_COMPOSITE, | ||
1836 | .data = & (const struct snd_usb_audio_quirk[]) { | ||
1837 | { | ||
1838 | .ifnum = 0, | ||
1839 | .type = QUIRK_IGNORE_INTERFACE | ||
1840 | }, | ||
1841 | { | ||
1842 | .ifnum = 1, | ||
1843 | .type = QUIRK_AUDIO_STANDARD_INTERFACE | ||
1844 | }, | ||
1845 | { | ||
1846 | .ifnum = 2, | ||
1847 | .type = QUIRK_AUDIO_STANDARD_INTERFACE | ||
1848 | }, | ||
1849 | /* interface 3 (MIDI) is standard compliant */ | ||
1850 | { | ||
1851 | .ifnum = -1 | ||
1852 | } | ||
1853 | } | ||
1854 | } | ||
1855 | }, | ||
1856 | { | ||
1857 | USB_DEVICE(0x0763, 0x2081), | ||
1858 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { | ||
1859 | /* .vendor_name = "M-Audio", */ | ||
1860 | /* .product_name = "Fast Track Ultra 8R", */ | ||
1861 | .ifnum = QUIRK_ANY_INTERFACE, | ||
1862 | .type = QUIRK_COMPOSITE, | ||
1863 | .data = & (const struct snd_usb_audio_quirk[]) { | ||
1864 | { | ||
1865 | .ifnum = 0, | ||
1866 | .type = QUIRK_IGNORE_INTERFACE | ||
1867 | }, | ||
1868 | { | ||
1869 | .ifnum = 1, | ||
1870 | .type = QUIRK_AUDIO_STANDARD_INTERFACE | ||
1871 | }, | ||
1872 | { | ||
1873 | .ifnum = 2, | ||
1874 | .type = QUIRK_AUDIO_STANDARD_INTERFACE | ||
1875 | }, | ||
1876 | /* interface 3 (MIDI) is standard compliant */ | ||
1877 | { | ||
1878 | .ifnum = -1 | ||
1879 | } | ||
1880 | } | ||
1881 | } | ||
1882 | }, | ||
1829 | 1883 | ||
1830 | /* Casio devices */ | 1884 | /* Casio devices */ |
1831 | { | 1885 | { |
diff --git a/sound/usb/urb.c b/sound/usb/urb.c index ad50d4398921..e2b7c4784246 100644 --- a/sound/usb/urb.c +++ b/sound/usb/urb.c | |||
@@ -918,6 +918,11 @@ void snd_usb_init_substream(struct snd_usb_stream *as, | |||
918 | case USB_ID(0x041e, 0x3f0a): /* E-Mu Tracker Pre */ | 918 | case USB_ID(0x041e, 0x3f0a): /* E-Mu Tracker Pre */ |
919 | subs->ops.retire_sync = retire_playback_sync_urb_hs_emu; | 919 | subs->ops.retire_sync = retire_playback_sync_urb_hs_emu; |
920 | break; | 920 | break; |
921 | case USB_ID(0x0763, 0x2080): /* M-Audio Fast Track Ultra 8 */ | ||
922 | case USB_ID(0x0763, 0x2081): /* M-Audio Fast Track Ultra 8R */ | ||
923 | subs->ops.prepare_sync = prepare_playback_sync_urb; | ||
924 | subs->ops.retire_sync = retire_playback_sync_urb; | ||
925 | break; | ||
921 | } | 926 | } |
922 | } | 927 | } |
923 | 928 | ||