diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2010-10-22 18:20:48 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-10-22 18:48:40 +0200 |
commit | c7f572168fc4840727c9bda955b7f103922209cd (patch) | |
tree | 0d0480506cf8d78a77549e9dec15d1d2356a7814 /sound/usb/midi.c | |
parent | Merge remote branch 'alsa/devel' into topic/misc (diff) | |
download | linux-c7f572168fc4840727c9bda955b7f103922209cd.tar.xz linux-c7f572168fc4840727c9bda955b7f103922209cd.zip |
ALSA: usb-audio: add Novation Launchpad support
Add a quirk entry for the Novation Launchpad USB MIDI controller.
QUIRK_MIDI_FASTLANE gets renamed to *_RAW_BYTES because this quirk type
is now shared by different devices.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Tested-by: Jakob Flierl <jakob.flierl@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/midi.c')
-rw-r--r-- | sound/usb/midi.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/usb/midi.c b/sound/usb/midi.c index 156cd0716c42..25bce7e5b1af 100644 --- a/sound/usb/midi.c +++ b/sound/usb/midi.c @@ -784,7 +784,7 @@ static struct usb_protocol_ops snd_usbmidi_novation_ops = { }; /* - * "raw" protocol: used by the MOTU FastLane. + * "raw" protocol: just move raw MIDI bytes from/to the endpoint */ static void snd_usbmidi_raw_input(struct snd_usb_midi_in_endpoint* ep, @@ -2122,7 +2122,7 @@ int snd_usbmidi_create(struct snd_card *card, umidi->usb_protocol_ops = &snd_usbmidi_novation_ops; err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); break; - case QUIRK_MIDI_FASTLANE: + case QUIRK_MIDI_RAW_BYTES: umidi->usb_protocol_ops = &snd_usbmidi_raw_ops; /* * Interface 1 contains isochronous endpoints, but with the same @@ -2133,7 +2133,8 @@ int snd_usbmidi_create(struct snd_card *card, * interface 0, so we have to make sure that the USB core looks * again at interface 0 by calling usb_set_interface() on it. */ - usb_set_interface(umidi->dev, 0, 0); + if (umidi->usb_id == USB_ID(0x07fd, 0x0001)) /* MOTU Fastlane */ + usb_set_interface(umidi->dev, 0, 0); err = snd_usbmidi_detect_per_port_endpoints(umidi, endpoints); break; case QUIRK_MIDI_EMAGIC: |