[Development report #33] Audio Stack Improvements

From: Christos Margiolis <christos_at_freebsd.org>
Date: Tue, 25 Mar 2025 15:29:37 UTC
Automatic sound redirection

	- sound: Implement /dev/dsp as a router device:
	  https://reviews.freebsd.org/D49216
		- Lock around uses of devclass_*().
		- Pass the unit as argument to vdsp_getdev(). Will be
		  useful in the follow-up patch.
		- Do not ignore value from dsp_poll() in
		  vdsp_poll(), otherwise we might block there forever.
		- Working on a non-ugly solution to being able to
		  trigger vdsp_getdev() from a non-cdevsw context.
		- More testing. mmap does not work properly:
		  https://reviews.freebsd.org/D49216#1127568
		- Addressing kib@'s comments.
	- Working on the follow-up patches to D49216, to split the
	  default unit into playback and recording, as well as on
	  patching snd_hda(4) to export information about sound
	  redirection to sound(4).

Laptop project

	- snd_hda: Support Intel Raptor Lake 0x7a50:
	  https://cgit.freebsd.org/src/commit/?id=fc40132603f5133037a35e2c14ac1356a0128c50
	- snd_hda: Patch Framework 16" AMD:
	  https://reviews.freebsd.org/D49416
	- Noted down issues encountered so far with Framework 13 AMD
	  7040 Series:
		- https://wiki.freebsd.org/Laptops/Framework_Laptop/13_AMD_Ryzen_7040_Series#Quirks
		- https://lists.freebsd.org/archives/freebsd-desktop/2025-March/005733.html
	- Contacted Daniel Schaefer from Framework with regards to
	  Framework 13 AMD headset mic, because I haven't been able to
	  get it working so far. He responded that most likely we need
	  to apply a quirk like Linux does.
	- Sent an email regarding audio on Framework 16, after a long
	  debugging session with jrm@:
	  https://lists.freebsd.org/archives/freebsd-desktop/2025-March/005753.html
	- Abandoned: https://reviews.freebsd.org/D49396
	- Discussed with adrian@ on IRC about Macbook Air (CS4208 codec)
	  sound issues. We discovered there are some Linux quirks, and
	  I'll try to port them ASAP.

GSOC

	- In contact with two potential GSOC students:
	  https://wiki.freebsd.org/SummerOfCodeIdeas#Port_virtual_oss_to_base
	- Joined GSOC call.

sound: Improve afmt_tab:
https://reviews.freebsd.org/D48009

	- Fix 24-bit formats as well.

Debugging some issues with kevans@'s Logitech H390 USB-A headset (mic
sound routing back to the speakers).

virtual_oss: Retire -T option:
https://github.com/freebsd/virtual_oss/commit/6d7f60c21497989f1527465f5e9b493174ac9095

	- Also created new tag (v1.3.2) and notified users:
	  https://lists.freebsd.org/archives/freebsd-multimedia/2025-March/002915.html

audio/virtual_oss: Update to 1.3.2:
https://cgit.freebsd.org/ports/commit/?id=755d9b5959c9d16ada1cb54180719e17a3908fde

MFC'd some patches to stable/14.

This work is sponsored by the FreeBSD Foundation.

Christos