[Development report #29] Audio Stack Improvements

From: Christos Margiolis <christos_at_freebsd.org>
Date: Tue, 18 Feb 2025 15:13:20 UTC
Worked on previous weeks' patches. Waiting for feedback on some of them
before I commit them.

Submitted BSDCan abstract: "Vox FreeBSD: How sound(4) works"

sound: Introduce global driver lock:
https://reviews.freebsd.org/D46700

	Rebase on top of recent patches.

sound: Implement AFMT_FLOAT support:
https://reviews.freebsd.org/D47638

	Testing and solving remaining issues in cooperation with other
	people.

sound: Fix vchanrate and vchanformat:
https://reviews.freebsd.org/D48961

sound: Update comment and channel insertion in vchan_create():
https://reviews.freebsd.org/D48962

sound: Call chn_kill() in chn_init() failure:
https://reviews.freebsd.org/D48966

sound: Retire SD_F_AUTOVCHAN:
https://reviews.freebsd.org/D49021

sound: Make dev.pcm.X.mode dynamic:
https://reviews.freebsd.org/D49024

snd_uaudio.4: Move non-uaudio-specific BUGS paragraph to pcm.4:
https://reviews.freebsd.org/D49019

Committed a few simple patches for virtual_oss man pages.

Bug reports:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254465
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197773
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259582

Bug triaging.

Tested and reviewed:
https://reviews.freebsd.org/D48926

Laptop project

	snd_hda: Define ALC898:
	https://reviews.freebsd.org/D48940

	Attended Foundation's Iteration call.

	Had an email exchange with mav@, who has worked on snd_hda(4)
	quite extensively. He proposed that instead of pursuing D48809
	(turns out something similar also was attempted by Windows in
	the 90s) and hoping that there won't be tons of edge cases that
	go unresolved (which is very likely, as I have warned multiple
	times before), we could instead do what Windows does since the
	00s and create separate sound(4) devices for each pin, which is
	already done for certain devices. This way we can redirect sound
	easier based on priorities (kind of what we do when a sound card
	is disconnected), instead of trying to group pins together based
	on heuristics that in many cases do not work. This does set the
	project behind, but I think it will pay off in the long run.

	Reviewing and testing:
	https://reviews.freebsd.org/D49002

This work is sponsored by the FreeBSD Foundation.

Christos