NetBSD Problem Report #59169
From paul@whooppee.com Tue Mar 11 05:39:18 2025
Return-Path: <paul@whooppee.com>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
client-signature RSA-PSS (2048 bits) client-digest SHA256)
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id A21381A9239
for <gnats-bugs@gnats.NetBSD.org>; Tue, 11 Mar 2025 05:39:18 +0000 (UTC)
Message-Id: <20250311053915.1EC8149A967@speedy.whooppee.com>
Date: Mon, 10 Mar 2025 22:39:15 -0700 (PDT)
From: paul@whooppee.com
Reply-To: paul@whooppee.com
To: gnats-bugs@NetBSD.org
Subject: uaudio(4) problems
X-Send-Pr-Version: 3.95
>Number: 59169
>Category: kern
>Synopsis: uaudio(4) problems
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Mar 11 05:40:00 +0000 2025
>Last-Modified: Tue Mar 11 06:40:01 +0000 2025
>Originator: Paul Goyette
>Release: NetBSD 10.99.12
>Organization:
+---------------------+--------------------------+----------------------+
| Paul Goyette (.sig) | PGP Key fingerprint: | E-mail addresses: |
| (Retired) | 1B11 1849 721C 56C8 F63A | paul@whooppee.com |
| Software Developer | 6E2E 05FD 15CE 9F2D 5102 | pgoyette@netbsd.org |
| & Network Engineer | | pgoyette99@gmail.com |
+---------------------+--------------------------+----------------------+
>Environment:
System: NetBSD speedy.whooppee.com 10.99.12 NetBSD 10.99.12 (SPEEDY 2025-02-09 23:04:47 UTC) #0: Mon Feb 10 04:36:23 UTC 2025 paul@speedy.whooppee.com:/build/netbsd-local/obj/amd64/sys/arch/amd64/compile/SPEEDY amd64
Architecture: x86_64
Machine: amd64
>Description:
A uaudio(4) device does apparent strange things at configure time,
and does not play any audio.
When booting, we get the following dmesg info, which seems OK. (The
motherboard manual refers to this device as an ALC4080.)
uaudio0 at uhub3 port 6 configuration 1 interface 0
uaudio0: Generic (0x0b05) USB Audio (0x1b9b), rev 2.00/0.13, add
uaudio0: ignored setting with type 3 format
uaudio0: audio rev 2.00
audio0 at uaudio0: playback, capture, full duplex, independent
audio0: slinear_le:16 2ch 48000Hz, blk 5760 bytes (30ms) for playback
audio0: slinear_le:16 2ch 48000Hz, blk 29760 bytes (155ms) for recording
But in audiocfg it seems to have significant duplication of the "mode
lines"
0: [*] audio0 @ uaudio0: USB audio
playback: 16, 2ch, 48000Hz
record: 16, 2ch, 48000Hz
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 4ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 4ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 4ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 6ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 6ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 6ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 8ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 8ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 8ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 32/32, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 176400, 192000, 384000 }
And when playing a sample mp3 file, no sound is produced; instead we
get the following errors on the console:
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(768) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: SHORT_XFER
uaudio0: uaudio_chan_pintr: count(792) != size(960), status(16)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(192) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: SHORT_XFER
uaudio0: uaudio_chan_pintr: count(408) != size(960), status(16)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(576) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: SHORT_XFER
uaudio0: uaudio_chan_pintr: count(24) != size(960), status(16)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: IOERROR
uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
uaudio0: pintr error: SHORT_XFER
uaudio0: uaudio_chan_pintr: count(600) != size(960), status(16)
>How-To-Repeat:
>Fix:
please
>Audit-Trail:
From: mlelstv@serpens.de (Michael van Elst)
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: kern/59169: uaudio(4) problems
Date: Tue, 11 Mar 2025 06:35:41 -0000 (UTC)
paul@whooppee.com writes:
>But in audiocfg it seems to have significant duplication of the "mode
>lines"
>0: [*] audio0 @ uaudio0: USB audio
> playback: 16, 2ch, 48000Hz
> record: 16, 2ch, 48000Hz
> (-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
> (-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
> (-R) slinear_le 16/16, 2ch, { 44100, 48000, 96000, 192000 }
> (-R) slinear_le 24/24, 2ch, { 44100, 48000, 96000, 192000 }
UAC2 builds a list of audio formats from different parameter sets,
and that is only partially filtered.
uaudio0 at uhub5 port 1 configuration 1 interface 0
uaudio0: ASUSTeK (0x0b05) ASUS XONAR U5 (0x17f5), rev 2.00/1.02, addr 5
uaudio0: ignored setting with type 3 format
uaudio0: ignored descriptor type 11 subtype 4
uaudio0: audio rev 2.00
audio0 at uaudio0: playback, capture, full duplex, independent
audio0: slinear_le:32 2ch 48000Hz, blk 11520 bytes (30ms) for playback
audio0: slinear_le:32 2ch 48000Hz, blk 49920 bytes (130ms) for recording
spkr1 at audio0: PC Speaker (synthesized)
wsbell at spkr1 not configured
uhidev5 at uhub5 port 1 configuration 1 interface 4
uhidev5: ASUSTeK (0x0b05) ASUS XONAR U5 (0x17f5), rev 2.00/1.02, addr 5, iclass 3/0
uhid13 at uhidev5: input=16, output=16, feature=0
1: [ ] audio0 @ uaudio0: USB audio
playback: 24, 2ch, 48000Hz
record: 24, 2ch, 48000Hz
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(P-) slinear_le 16/16, 4ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(P-) slinear_le 24/24, 4ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(P-) slinear_le 16/16, 6ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(P-) slinear_le 24/24, 6ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(P-) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(P-) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 192000, 176400 }
(-R) slinear_le 16/16, 2ch, { 44100, 48000, 88200, 96000, 192000 }
(-R) slinear_le 24/24, 2ch, { 44100, 48000, 88200, 96000, 192000 }
You see that the 2ch playback lines are repeated (once) too.
In the 'usbutil' package from pkgsrc there is a 'usbctl' command that
can dump all the descriptors (we should have something like it in base).
E.g.:
# usbdevs
addr 0: xHCI root hub, NetBSD
...
addr 0: xHCI root hub, NetBSD
addr 1: USB2.0 Hub, vendor 2109
addr 3: USB2.1 Hub, GenesysLogic
addr 5: ASUS XONAR U5, ASUSTeK
...
addr 1: DWC2 root hub, NetBSD
# usbctl -f /dev/usb1 -a 5
DEVICE addr 5
DEVICE descriptor:
bLength=18 bDescriptorType=device(1) bcdUSB=2.00 bDeviceClass=239 bDeviceSubClass=2
bDeviceProtocol=1 bMaxPacketSize=64 idVendor=0x0b05 idProduct=0x17f5 bcdDevice=102
iManufacturer=1(ASUSTeK) iProduct=2(ASUS XONAR U5) iSerialNumber=0() bNumConfigurations=1
...
>And when playing a sample mp3 file, no sound is produced; instead we
>get the following errors on the console:
>uaudio0: pintr error: IOERROR
>uaudio0: uaudio_chan_pintr: count(0) != size(960), status(13)
The IOERROR might be an issue with isochronous transfers of the
USB controller.
>uaudio0: pintr error: SHORT_XFER
>uaudio0: uaudio_chan_pintr: count(792) != size(960), status(16)
I have seen short transfers for recording but not yet for playing.
These shouldn't exist, but maybe we should tolerate and handle
them.
N.B. the Xonar U5 works for me on several xhci and ehci controllers.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2025
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.