diff options
Diffstat (limited to 'sound/usb/quirks.c')
-rw-r--r-- | sound/usb/quirks.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 81e07d84258..2e5bc734402 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include "endpoint.h" | 34 | #include "endpoint.h" |
35 | #include "pcm.h" | 35 | #include "pcm.h" |
36 | #include "clock.h" | 36 | #include "clock.h" |
37 | #include "stream.h" | ||
37 | 38 | ||
38 | /* | 39 | /* |
39 | * handle the quirks for the contained interfaces | 40 | * handle the quirks for the contained interfaces |
@@ -106,7 +107,7 @@ static int create_standard_audio_quirk(struct snd_usb_audio *chip, | |||
106 | 107 | ||
107 | alts = &iface->altsetting[0]; | 108 | alts = &iface->altsetting[0]; |
108 | altsd = get_iface_desc(alts); | 109 | altsd = get_iface_desc(alts); |
109 | err = snd_usb_parse_audio_endpoints(chip, altsd->bInterfaceNumber); | 110 | err = snd_usb_parse_audio_interface(chip, altsd->bInterfaceNumber); |
110 | if (err < 0) { | 111 | if (err < 0) { |
111 | snd_printk(KERN_ERR "cannot setup if %d: error %d\n", | 112 | snd_printk(KERN_ERR "cannot setup if %d: error %d\n", |
112 | altsd->bInterfaceNumber, err); | 113 | altsd->bInterfaceNumber, err); |
@@ -147,7 +148,7 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip, | |||
147 | 148 | ||
148 | stream = (fp->endpoint & USB_DIR_IN) | 149 | stream = (fp->endpoint & USB_DIR_IN) |
149 | ? SNDRV_PCM_STREAM_CAPTURE : SNDRV_PCM_STREAM_PLAYBACK; | 150 | ? SNDRV_PCM_STREAM_CAPTURE : SNDRV_PCM_STREAM_PLAYBACK; |
150 | err = snd_usb_add_audio_endpoint(chip, stream, fp); | 151 | err = snd_usb_add_audio_stream(chip, stream, fp); |
151 | if (err < 0) { | 152 | if (err < 0) { |
152 | kfree(fp); | 153 | kfree(fp); |
153 | kfree(rate_table); | 154 | kfree(rate_table); |
@@ -254,7 +255,7 @@ static int create_uaxx_quirk(struct snd_usb_audio *chip, | |||
254 | 255 | ||
255 | stream = (fp->endpoint & USB_DIR_IN) | 256 | stream = (fp->endpoint & USB_DIR_IN) |
256 | ? SNDRV_PCM_STREAM_CAPTURE : SNDRV_PCM_STREAM_PLAYBACK; | 257 | ? SNDRV_PCM_STREAM_CAPTURE : SNDRV_PCM_STREAM_PLAYBACK; |
257 | err = snd_usb_add_audio_endpoint(chip, stream, fp); | 258 | err = snd_usb_add_audio_stream(chip, stream, fp); |
258 | if (err < 0) { | 259 | if (err < 0) { |
259 | kfree(fp); | 260 | kfree(fp); |
260 | return err; | 261 | return err; |
@@ -306,6 +307,7 @@ int snd_usb_create_quirk(struct snd_usb_audio *chip, | |||
306 | [QUIRK_MIDI_EMAGIC] = create_any_midi_quirk, | 307 | [QUIRK_MIDI_EMAGIC] = create_any_midi_quirk, |
307 | [QUIRK_MIDI_CME] = create_any_midi_quirk, | 308 | [QUIRK_MIDI_CME] = create_any_midi_quirk, |
308 | [QUIRK_MIDI_AKAI] = create_any_midi_quirk, | 309 | [QUIRK_MIDI_AKAI] = create_any_midi_quirk, |
310 | [QUIRK_MIDI_FTDI] = create_any_midi_quirk, | ||
309 | [QUIRK_AUDIO_STANDARD_INTERFACE] = create_standard_audio_quirk, | 311 | [QUIRK_AUDIO_STANDARD_INTERFACE] = create_standard_audio_quirk, |
310 | [QUIRK_AUDIO_FIXED_ENDPOINT] = create_fixed_stream_quirk, | 312 | [QUIRK_AUDIO_FIXED_ENDPOINT] = create_fixed_stream_quirk, |
311 | [QUIRK_AUDIO_EDIROL_UAXX] = create_uaxx_quirk, | 313 | [QUIRK_AUDIO_EDIROL_UAXX] = create_uaxx_quirk, |
@@ -338,7 +340,7 @@ static int snd_usb_extigy_boot_quirk(struct usb_device *dev, struct usb_interfac | |||
338 | snd_printdd("sending Extigy boot sequence...\n"); | 340 | snd_printdd("sending Extigy boot sequence...\n"); |
339 | /* Send message to force it to reconnect with full interface. */ | 341 | /* Send message to force it to reconnect with full interface. */ |
340 | err = snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev,0), | 342 | err = snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev,0), |
341 | 0x10, 0x43, 0x0001, 0x000a, NULL, 0, 1000); | 343 | 0x10, 0x43, 0x0001, 0x000a, NULL, 0); |
342 | if (err < 0) snd_printdd("error sending boot message: %d\n", err); | 344 | if (err < 0) snd_printdd("error sending boot message: %d\n", err); |
343 | err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, | 345 | err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, |
344 | &dev->descriptor, sizeof(dev->descriptor)); | 346 | &dev->descriptor, sizeof(dev->descriptor)); |
@@ -359,11 +361,11 @@ static int snd_usb_audigy2nx_boot_quirk(struct usb_device *dev) | |||
359 | 361 | ||
360 | snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), 0x2a, | 362 | snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), 0x2a, |
361 | USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER, | 363 | USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER, |
362 | 0, 0, &buf, 1, 1000); | 364 | 0, 0, &buf, 1); |
363 | if (buf == 0) { | 365 | if (buf == 0) { |
364 | snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), 0x29, | 366 | snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), 0x29, |
365 | USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER, | 367 | USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_OTHER, |
366 | 1, 2000, NULL, 0, 1000); | 368 | 1, 2000, NULL, 0); |
367 | return -ENODEV; | 369 | return -ENODEV; |
368 | } | 370 | } |
369 | return 0; | 371 | return 0; |
@@ -406,7 +408,7 @@ static int snd_usb_cm106_write_int_reg(struct usb_device *dev, int reg, u16 valu | |||
406 | buf[3] = reg; | 408 | buf[3] = reg; |
407 | return snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), USB_REQ_SET_CONFIGURATION, | 409 | return snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), USB_REQ_SET_CONFIGURATION, |
408 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_ENDPOINT, | 410 | USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_ENDPOINT, |
409 | 0, 0, &buf, 4, 1000); | 411 | 0, 0, &buf, 4); |
410 | } | 412 | } |
411 | 413 | ||
412 | static int snd_usb_cm106_boot_quirk(struct usb_device *dev) | 414 | static int snd_usb_cm106_boot_quirk(struct usb_device *dev) |