opnsense-src/sys/dev/sound
Christos Margiolis e8a80b4e50 sound: Separate implementations for SNDCTL_AUDIOINFO[_EX] and SNDCTL_ENGINEINFO
FreeBSD's implementation of SNDCTL_AUDIOINFO[_EX] and SNDCTL_ENGINEINFO
does not exactly work as intended. The problem is essentially that both
IOCTLs return the same information, while in fact the information
returned currently by dsp_oss_audioinfo() is what _only_
SNDCTL_ENGINEINFO is meant to return.

This behavior is also noted in the OSS manual [1] (see bold paragraph in
"Audio engines and device files" section), but since e8c0d15a64fa
("sound: Get rid of snd_clone and use DEVFS_CDEVPRIV(9)") we can
actually fix this, because we now expose only a single device for each
soundcard, and create the engines (channels) internally.
SNDCTL_ENGINEINFO will now report info about all channels in a given
device, and SNDCTL_AUDIOINFO[_EX] will only report information about
/dev/dspX.

To make this work, we also have to modify the SNDCTL_SYSINFO IOCTL to
report the number of audio devices and audio engines correctly.

While here, modernize the minimum and maximum channel counting in both
SNDCTL_AUDIOINFO[_EX] and SNDCTL_ENGINEINFO. Currently these IOCTLs will
report only up to 2 channels, which is no longer the case.

[1] http://manuals.opensound.com/developer/SNDCTL_AUDIOINFO.html

PR:		246231, 252761
Sponsored by:	The FreeBSD Foundation
MFC after:	1 day
Reviewed by:	dev_submerge.ch
Differential Revision:	https://reviews.freebsd.org/D45164

(cherry picked from commit e07f9178502b7cbc0769fc10e99ad0d013f437fd)
2024-05-25 21:30:26 +02:00
..
fdt audio_soc: set "status" as being at simplebus 2024-02-17 16:15:10 +02:00
isa sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
macio sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
midi sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
pci snd_hda: Add patch for Asus UX331UAL 2024-05-23 02:24:15 +02:00
pcm sound: Separate implementations for SNDCTL_AUDIOINFO[_EX] and SNDCTL_ENGINEINFO 2024-05-25 21:30:26 +02:00
usb sound: Move chip.h contents to pcm/sound.h 2024-05-17 21:30:35 +02:00
driver.c sound: add missing modules to snd_driver 2024-01-30 13:07:29 +02:00