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:

NetBSD Home
NetBSD PR Database Search

(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.