From 73ac9f5e5b43a5dbadb61f27dae7a971f7ec0d22 Mon Sep 17 00:00:00 2001 From: Alexander Tsoy Date: Sun, 12 Jan 2020 13:23:58 +0300 Subject: 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 Link: https://lore.kernel.org/r/20200112102358.18085-1-alexander@tsoy.me Signed-off-by: Takashi Iwai --- sound/usb/card.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sound/usb/card.c') diff --git a/sound/usb/card.c b/sound/usb/card.c index 9f743ebae615..2f582ac7cf78 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -600,6 +600,10 @@ static int usb_audio_probe(struct usb_interface *intf, } } if (! chip) { + err = snd_usb_apply_boot_quirk_once(dev, intf, quirk, id); + if (err < 0) + return err; + /* it's a fresh one. * now look for an empty slot and create a new card instance */ -- cgit v1.2.3