aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/quirks.h
diff options
context:
space:
mode:
authorAlexander Tsoy <alexander@tsoy.me>2020-01-12 13:23:58 +0300
committerTakashi Iwai <tiwai@suse.de>2020-01-13 10:47:56 +0100
commit73ac9f5e5b43a5dbadb61f27dae7a971f7ec0d22 (patch)
treedd9e57dc62f3f57a62366d74ace0d7885ad3b214 /sound/usb/quirks.h
parentALSA: dice: add support for Alesis MasterControl (diff)
downloadlinux-dev-73ac9f5e5b43a5dbadb61f27dae7a971f7ec0d22.tar.xz
linux-dev-73ac9f5e5b43a5dbadb61f27dae7a971f7ec0d22.zip
ALSA: usb-audio: Add boot quirk for MOTU M Series
Add delay to make sure that audio urbs are not sent too early. Otherwise the device hangs. Windows driver makes ~2s delay, so use about the same time delay value. snd_usb_apply_boot_quirk() is called 3 times for my MOTU M4, which is an overkill. Thus a quirk that is called only once is implemented. Also send two vendor-specific control messages before and after the delay. This behaviour is blindly copied from the Windows driver. Signed-off-by: Alexander Tsoy <alexander@tsoy.me> Link: https://lore.kernel.org/r/20200112102358.18085-1-alexander@tsoy.me Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to '')
-rw-r--r--sound/usb/quirks.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/usb/quirks.h b/sound/usb/quirks.h
index a80e0ddd0736..df0355843a4c 100644
--- a/sound/usb/quirks.h
+++ b/sound/usb/quirks.h
@@ -20,6 +20,11 @@ int snd_usb_apply_boot_quirk(struct usb_device *dev,
const struct snd_usb_audio_quirk *quirk,
unsigned int usb_id);
+int snd_usb_apply_boot_quirk_once(struct usb_device *dev,
+ struct usb_interface *intf,
+ const struct snd_usb_audio_quirk *quirk,
+ unsigned int usb_id);
+
void snd_usb_set_format_quirk(struct snd_usb_substream *subs,
struct audioformat *fmt);