diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2013-08-11 16:13:13 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-08-12 13:42:28 +0400 |
commit | aa773bfe8f860173752258c9ba4bf51060fb0d07 (patch) | |
tree | c7a61c31b6c2d6ba807a7d1708b4ff33a77b8517 | |
parent | 4c2aee0032b70083dafebd733ed9c774633b2fa3 (diff) | |
download | linux-aa773bfe8f860173752258c9ba4bf51060fb0d07.tar.xz |
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>
-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; } |