Alsa-Devel Archive on lore.kernel.org
 help / color / 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, back to index

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

Alsa-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/alsa-devel/0 alsa-devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 alsa-devel alsa-devel/ https://lore.kernel.org/alsa-devel \
		alsa-devel@alsa-project.org
	public-inbox-index alsa-devel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.alsa-project.alsa-devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git