USB audio stopped working between p7 and p8

From: Alban Hertroys <haramrae_at_gmail.com>
Date: Tue, 25 Jul 2023 11:19:19 UTC
Hi list,

I recently upgraded my home server with musicpd from 13.1-RELEASE-p7 to 13.1-RELEASE-p8, and now USB audio stopped working.

The USB DAC identifies the input as 44.1kHz PCM, which, with the sysctl’s that I set really should have been 192kHz to begin with, but there’s also no audio from it at all. I figure that if I can get audio working at all again, even at 44.1 kHz, I can take it from there again. To focus on the problem, I’ll leave musicpd and virtual_oss out of the equation for now...

For the upgrade, I used:
freebsd-update fetch
freebsd-update install

Before the upgrade, the USB DAC registered as pcm0 while now it registers as pcm2, so the sysctl’s applied to the device now obviously go to another device (namely one of the HDMI outputs), but even then I should get audio from it.

I’m at a loss as to what’s the culprit here and am starting to think that it’s a problem with the release or with the newer GENERIC kernel.

I’d appreciate help fixing this. Thanks in advance.


Some context:

# uname -a
FreeBSD solfertje 13.1-RELEASE-p8 FreeBSD 13.1-RELEASE-p8 GENERIC amd64

# cat /var/run/dmesg.boot | grep uaudio
uaudio0 on uhub3
uaudio0: <D90SE> on usbus1
uaudio0: Play[0]: 384000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 352800 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 192000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 176400 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 96000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 88200 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 48000 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Play[0]: 44100 Hz, 2 ch, 32-bit S-LE PCM format, 2x8ms buffer.
uaudio0: No recording.
uaudio0: No MIDI sequencer.
pcm2: <USB audio> on uaudio0
uaudio0: No HID volume keys found.

# sysctl dev.uaudio
dev.uaudio.0.%parent: uhub3
dev.uaudio.0.%pnpinfo: vendor=0x152a product=0x8750 devclass=0xef devsubclass=0x02 devproto=0x01 sernum="" release=0x0188 mode=host intclass=0x01 intsubclass=0x01 intprotocol=0x20
dev.uaudio.0.%location: bus=0 hubaddr=6 port=4 devaddr=7 interface=0 ugen=ugen0.7
dev.uaudio.0.%driver: uaudio
dev.uaudio.0.%desc: D90SE
dev.uaudio.%parent: 

# sysctl hw.snd
hw.snd.maxautovchans: 0
hw.snd.default_unit: 2
hw.snd.version: 2009061500/amd64
hw.snd.default_auto: 2
hw.snd.verbose: 0
hw.snd.vpc_mixer_bypass: 1
hw.snd.feeder_rate_quality: 4
hw.snd.feeder_rate_round: 25
hw.snd.feeder_rate_max: 2016000
hw.snd.feeder_rate_min: 1
hw.snd.feeder_rate_polyphase_max: 183040
hw.snd.feeder_rate_presets: 100:8:0.85 100:36:0.92 100:164:0.97
hw.snd.feeder_eq_exact_rate: 0
hw.snd.feeder_eq_presets: PEQ:16000,0.2500,62,0.2500:-9,9,1.0:44100,48000,88200,96000,176400,192000
hw.snd.basename_clone: 1
hw.snd.compat_linux_mmap: 0
hw.snd.syncdelay: -1
hw.snd.usefrags: 0
hw.snd.vpc_reset: 0
hw.snd.vpc_0db: 100
hw.snd.vpc_autoreset: 1
hw.snd.timeout: 5
hw.snd.latency_profile: 1
hw.snd.latency: 7
hw.snd.report_soft_matrix: 1
hw.snd.report_soft_formats: 1

# cat /dev/sndstat
Installed devices:
pcm0: <ATI R6xx (HDMI)> (play)
pcm1: <ATI R6xx (HDMI)> (play)
pcm2: <USB audio> (play) default
No devices installed from userspace.

# sysctl dev.pcm.2
dev.pcm.2.feedback_rate: 0
dev.pcm.2.mode: 3
dev.pcm.2.bitperfect: 0
dev.pcm.2.buffersize: 0
dev.pcm.2.play.vchans: 0
dev.pcm.2.hwvol_mixer: vol
dev.pcm.2.hwvol_step: 5
dev.pcm.2.%parent: uaudio0
dev.pcm.2.%pnpinfo: 
dev.pcm.2.%location: 
dev.pcm.2.%driver: pcm
dev.pcm.2.%desc: USB audio

# mixer
Mixer vol      is currently set to 100:100
Mixer pcm      is currently set to 100:100


Alban Hertroys
--
There is always an exception to always.