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>
This commit is contained in:
Alexander Tsoy
2020-01-12 13:23:58 +03:00
committed by Takashi Iwai
parent 791a485f2d
commit 73ac9f5e5b
3 changed files with 47 additions and 0 deletions

View File

@@ -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
*/