diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2013-08-11 14:13:13 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-08-12 11:42:28 +0200 |
commit | aa773bfe8f860173752258c9ba4bf51060fb0d07 (patch) | |
tree | c7a61c31b6c2d6ba807a7d1708b4ff33a77b8517 /sound/usb | |
parent | ALSA: 6fire: make buffers DMA-able (midi) (diff) | |
download | linux-aa773bfe8f860173752258c9ba4bf51060fb0d07.tar.xz linux-aa773bfe8f860173752258c9ba4bf51060fb0d07.zip |
ALSA: usb-audio: fix automatic Roland/Yamaha MIDI detection
Commit aafe77cc45a5 (ALSA: usb-audio: add support for many Roland/Yamaha
devices) had several logic errors that prevented create_auto_midi_quirk
from enumerating any MIDI ports.
Reported-by: Keith A. Milner <maillist@superlative.org>
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/quirks.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 1bc45e71f1fe..0df9ede99dfd 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -319,19 +319,19 @@ static int create_auto_midi_quirk(struct snd_usb_audio *chip, if (altsd->bNumEndpoints < 1) return -ENODEV; epd = get_endpoint(alts, 0); - if (!usb_endpoint_xfer_bulk(epd) || + if (!usb_endpoint_xfer_bulk(epd) && !usb_endpoint_xfer_int(epd)) return -ENODEV; switch (USB_ID_VENDOR(chip->usb_id)) { case 0x0499: /* Yamaha */ err = create_yamaha_midi_quirk(chip, iface, driver, alts); - if (err < 0 && err != -ENODEV) + if (err != -ENODEV) return err; break; case 0x0582: /* Roland */ err = create_roland_midi_quirk(chip, iface, driver, alts); - if (err < 0 && err != -ENODEV) + if (err != -ENODEV) return err; break; } |