summaryrefslogtreecommitdiffstats
path: root/sound/usb/quirks.c
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@laiskiainen.org>2014-11-30 17:45:40 +0100
committerTakashi Iwai <tiwai@suse.de>2014-12-01 17:38:03 +0100
commitdacacb0aa0cb6fdeb69313db6acfc82456945d7e (patch)
treee15b2be20237627b93df073897b503783805c3f2 /sound/usb/quirks.c
parentALSA: virmidi: Fix wrong error check (diff)
downloadlinux-dacacb0aa0cb6fdeb69313db6acfc82456945d7e.tar.xz
linux-dacacb0aa0cb6fdeb69313db6acfc82456945d7e.zip
ALSA: usb-audio: Add support for Zoom R16/24 capture and midi interfaces
This makes the midi interface and capture work out of the box with R16 (and presumably R24 too but untested). Playback stream would also seem to function fine except for one caveat: no sound is produced, so it is disabled for now. Mixer descriptors are garbage and will require further quirks to enable functionality, also disabled here. Signed-off-by: Panu Matilainen <pmatilai@laiskiainen.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/quirks.c')
-rw-r--r--sound/usb/quirks.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index e45cc3af9b9c..4dbfb3d18ee2 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1207,6 +1207,14 @@ void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,
break;
}
}
+
+ /* Zoom R16/24 needs a tiny delay here, otherwise requests like
+ * get/set frequency return as failed despite actually succeeding.
+ */
+ if ((le16_to_cpu(dev->descriptor.idVendor) == 0x1686) &&
+ (le16_to_cpu(dev->descriptor.idProduct) == 0x00dd) &&
+ (requesttype & USB_TYPE_MASK) == USB_TYPE_CLASS)
+ mdelay(1);
}
/*