All of lore.kernel.org
 help / color / mirror / Atom feed
* MOTU Ultralite AVB: Modulo-8 output channel hopping
@ 2020-07-28 19:27 Holger Marzen
  0 siblings, 0 replies; only message in thread
From: Holger Marzen @ 2020-07-28 19:27 UTC (permalink / raw)
  To: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 916 bytes --]

Hi all,

I am using the MOTU Ultralite AVB USB audio interface. With recent
firmwares MOTU uses implicit feedback. Kernel 5.8-rc6 can handle it when
I apply the attached patch with the MOTU signatures.

But both with the old and the new firmware there is an occasional modulo
8 output channel hopping. What goes out to system:playback_1 in jackd
ends on channel 1, 9 or 17 in the interface. Same for system:playback_2.

I can force a hop when changing jackd's buffer size on the fly with
jack_bufsize.

One user reports this issue with ALSA clients, too, so it's probably no
jackd issue.

Since I never found this issue reported from a Windows or Mac user
it may be buried deep in the ALSA kernel code.

For me it seems that flaws/timeouts in the USB communication force this
hopping in the ALSA kernel.

Any ideas how to find out where the hopping happens?
sound/usb/endpoint.c ?
sound/usb/stream.c?

Regards
Holger

[-- Attachment #2: Type: text/plain, Size: 975 bytes --]

--- sound/usb/clock.c.orig	2020-07-25 23:39:23.686915955 +0200
+++ sound/usb/clock.c	2020-07-26 00:03:20.077034626 +0200
@@ -186,7 +186,8 @@
 	 * Sample rate changes takes more than 2 seconds for this device. Clock
 	 * validity request returns false during that period.
 	 */
-	if (chip->usb_id == USB_ID(0x07fd, 0x0004)) {
+  if (chip->usb_id == USB_ID(0x07fd, 0x0004) ||
+      chip->usb_id == USB_ID(0x07fd, 0x0005)) {
 		count = 0;
 
 		while ((!ret) && (count < 50)) {
--- sound/usb/pcm.c.orig	2020-07-25 23:42:57.267196819 +0200
+++ sound/usb/pcm.c	2020-07-25 23:42:28.958577798 +0200
@@ -366,6 +366,10 @@
 		ep = 0x84;
 		ifnum = 0;
 		goto add_sync_ep_from_ifnum;
+  case USB_ID(0x07fd, 0x0005): /* MOTU AVB Series */
+    ep = 0x87;
+    ifnum = 2;
+    goto add_sync_ep_from_ifnum;
 	case USB_ID(0x07fd, 0x0008): /* MOTU M Series */
 	case USB_ID(0x31e9, 0x0002): /* Solid State Logic SSL2+ */
 	case USB_ID(0x0d9a, 0x00df): /* RTX6001 */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-07-28 19:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-28 19:27 MOTU Ultralite AVB: Modulo-8 output channel hopping Holger Marzen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.