public inbox for linux-sound@vger.kernel.org
 help / color / mirror / Atom feed
* USB device with more than 32 channels
@ 2026-02-26 11:02 Phil Willoughby
  2026-02-26 12:17 ` Takashi Iwai
  0 siblings, 1 reply; 3+ messages in thread
From: Phil Willoughby @ 2026-02-26 11:02 UTC (permalink / raw)
  To: linux-sound@vger.kernel.org

There's a check at sound/usb/mixer.c:2024 introduced by patch
2f38cf730caedaeacdefb7ff35b0a3c1168117f9 which filters out any device
with more than 32 channels.

My audio interface has 34 channels in and 34 channels out, which
therefore takes this branch, and means that this interface doesn't work
on Linux. As I have nothing plugged in to channels 33 and 34 I am
locally experimenting with changing the body of this check like:

-		return -EINVAL;
+		channels = 32;

Which is obviously not a change I want to suggest for general
consumption. I would like to fix it properly.

Judging by the commit message for
2f38cf730caedaeacdefb7ff35b0a3c1168117f9 the only reason for more than
32 channels existing that seems to have been considered at the time was
a malformed USB descriptor. Is that something that actually exists in
the wild or was this scenario purely theoretical?

In either case I think the core of the correct fix is going to be to
make the 32-bit variable we're shifting a 64-bit variable and change the
hard check to > 64. If there are real concerns with malformed
descriptors we can either add an allow-list or reject-list based on vid/pid.

Should I expect any ABI problems here? Are we exposing a 32-bit channel
bitfield outside of kernel-space anywhere?

Some background:

The interface I have is an Arturia Audiofuse 16Rig. Yes it really has
that many channels.

There are a few threads on sites like
https://linuxmusicians.com/viewtopic.php?t=28759 where others have
encountered this problem so it's not just me.

You will find some threads which say it worked at some point in time but
then stopped working - this very roughly tracks with the timing of the
2f38cf730caedaeacdefb7ff35b0a3c1168117f9 commit getting merged into
mainstream distros.

I think I'm the first person to try tweaking this piece of code. I'm
still building my patched kernel as I type this so I can't yet say
whether it works.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-03-27 13:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-26 11:02 USB device with more than 32 channels Phil Willoughby
2026-02-26 12:17 ` Takashi Iwai
2026-03-27 13:42   ` Phil Willoughby

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox