freebsd-dev/sys/dev
Alexander Leidinger b611c801f0 MFp4 the sound Google Summer of Code project:
The goal was to sync with the OSSv4 API 4Front Technologies uses in their
proprietary OSS driver. This was successful as far as possible. The part
of the API which is stable is implemented, for the rest there are some
stubs already.

New system ioctls:
 - SNDCTL_SYSINFO - obtain audio system info (version, # of audio/midi/
   mixer devices, etc.)
 - SNDCTL_AUDIOINFO - fetch details about a specific audio device
 - SNDCTL_MIXERINFO - fetch details about a specific mixer device

New audio ioctls:
 - Sync groups (SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART) which allow
   triggered playback/recording on multiple devices (even across processes
   simultaneously).
 - Peak meters (SNDCTL_DSP_GETIPEAKS/SNDCTL_DSP_GETOPEAKS) - can query
   audio drivers for peak levels (needs driver support, disabled for now).
 - Per channel playback/recording levels -
   SNDCTL_DSP_{GET,SET}{PLAY,REC}VOL.  Note that these are still in name
   only, just wrapping around the AC97-style mixer at the moment. The next
   step is to push them down to the drivers.

Audio ioctls still under development by 4Front (for which stubs may exist
in this commit):
 - SNDCTL_GETNAME, SNDCTL_{GET,SET}{SONG,LABEL}
 - SNDCTL_DSP_{GET,SET}_CHNORDER
 - SNDCTL_MIX_ENUMINFO, SNDCTL_MIX_EXTINFO - (might be documented enough in
   the OSS releases to work on this.  These ioctls cover the cool "twiddle
   any knob on your card" features.)

Missing:
 - SNDCTL_DSP_COOKEDMODE -- this ioctl is used to give applications direct
   access to a card's buffers, bypassing the feeder architecture.  It's
   a toughy -- "someone" needs to decide :
   (a) if this is desireable, and (b) if it's reasonably feasible.

Updates for driver writers:
 So far, only two routines to the channel class (in channel_if.m) are added.
 One is for fetching a list of discrete supported playback/recording rates
 of a channel, and the other is for fetching peak level info (useful for
 drawing peak meters).  Interested parties may want to help pushing down
 SNDCTL_DSP_{GET,SET}{PLAY,REC}VOL into the drivers.

To use the new stuff you need to rebuild the sound drivers or your kernel
(depending on if you use modules or not) and to install soundcard.h (a
buildworld/installworld handles this).

Sponsored by:	Google SoC 2006
Submitted by:	ryanb
Many thanks to:	4Front Technologies for their cooperation, explanations
		and the nice license of their soundcard.h.
2006-09-23 20:45:47 +00:00
..
aac Unlock aac_io_lock before returning, thus eliminates a mutex 2006-07-14 13:55:56 +00:00
acpi_support Improve exception string format. 2006-08-14 18:38:56 +00:00
acpica Fix a sign bug in acpi_release_resource(). acpi_sysres_find() returns != 2006-09-21 18:56:03 +00:00
adlink
advansys Remove some header polution. 2006-04-30 16:44:41 +00:00
agp Add support for another ATI IGP 340M (RS200M) AGP bridge. 2006-09-01 02:22:17 +00:00
aha
ahb Fix missing update to reflect change in scsi_inquiry data structure. 2006-05-31 14:33:23 +00:00
aic
aic7xxx Coverity: initialize some variables before potential use. 2006-09-05 20:28:28 +00:00
amd
amr Chain the bus_dmamap_load() calls when mapping a command with a data CCB 2006-07-17 19:45:47 +00:00
an Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ar
arcmsr Fix typos: s/rebulid/rebuild/ 2006-08-31 08:45:44 +00:00
arl while (0); -> while (0) in multi-line macros 2006-08-17 22:50:33 +00:00
asr Remove stale MAINTAINER 2006-07-09 16:31:53 +00:00
ata If current_heads or current_sectors in the disk cap page are zero, dont try to use the current_ geometry. 2006-09-14 19:12:29 +00:00
ath o move ath hal os glue code from the hal to the driver: this code was 2006-09-18 16:49:15 +00:00
atkbdc Avoid an infinite loop in empty_both_buffers() by adding a timeout. 2006-09-04 00:19:31 +00:00
auxio
awi add missed calls to bpf_peers_present 2006-06-02 23:14:40 +00:00
bce Add a new 'bce_mgmt_init_locked' function to enable the minimal parts 2006-09-20 18:55:16 +00:00
bfe Back out the BUS_DMA_ALLOCNOW change from rev 1.39. Scottl informed me that 2006-05-28 20:35:39 +00:00
bge Allow the ASF feature to be disabled via a tunable. On one of my systems, 2006-09-23 18:55:49 +00:00
bktr Update prototype for smbus callback change. 2006-09-18 20:17:42 +00:00
buslogic
cardbus Minor cleanup of CIS parsing. 2006-06-12 03:28:42 +00:00
ce
ciss Spin until a request structure is available in the ioctl path. 2006-05-30 06:42:02 +00:00
cm Make cm(4) driver MPSAFE. 2006-06-11 22:25:01 +00:00
cnw Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cp
cpufreq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cs - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ct Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ctau Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cx Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
cy
dc - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
dcons Convert to new console interface. 2006-05-26 13:51:38 +00:00
de - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
digi - Push Giant down into linker_reference_module(). 2006-06-20 20:54:13 +00:00
dpt Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
drm Merge from DRM upstream: 2006-09-07 23:04:47 +00:00
ed MFp4: 2006-06-12 04:30:42 +00:00
eisa
em Move the initialization of the hardware capabilities in em_init_locked() 2006-09-21 19:14:51 +00:00
en - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ep
esp
ex
exca The TOPIC97 and TOPIC100 seem to have a special register in the exca 2006-08-12 08:53:54 +00:00
fatm
fb Remove the DPMS code in creator_blank_display(), as it causes some 2006-08-24 22:00:24 +00:00
fdc Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
fe Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
firewire Better printf 2006-06-12 04:00:33 +00:00
fxp Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
gem add a newbus method for obtaining the bus's bus_dma_tag_t... This is 2006-09-03 00:27:42 +00:00
gfb Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
harp
hatm
hfa
hifn Use newly added functions to simplify the code. 2006-06-04 22:17:25 +00:00
hme Fix invalid reference of mbuf chains. 2006-08-12 01:19:37 +00:00
hptmv Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
hwpmc Declare security and security.bsd sysctl hierarchies in sysctl.h along 2006-09-17 20:00:36 +00:00
ic Fix style nits. No md5 changes in .o's. ;-) 2006-09-08 21:46:01 +00:00
ichsmb Minor overhaul of SMBus support: 2006-09-11 20:52:41 +00:00
ichwd
ida
idt Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ie Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ieee488
if_ndis Static -> static. 2006-09-07 06:00:03 +00:00
iicbus Minor overhaul of SMBus support: 2006-09-11 20:52:41 +00:00
iir Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
io
ipmi Map pmap_{un,}mapbios() to pmap_{un,}mapdev() on 6.x and earlier. 2006-09-22 22:16:20 +00:00
ips while (0); -> while (0) in multi-line macros 2006-08-17 22:50:33 +00:00
ipw Hold on to firmware images until the interface detaches since 2006-06-10 17:29:40 +00:00
isp Restore multi-version cleanliness. 2006-09-03 01:26:55 +00:00
ispfw Add QLogic 2400 (4Gb) firmware. 2006-08-26 18:39:18 +00:00
iwi set default beacon miss threshold to 10 beacons 2006-07-26 03:09:32 +00:00
ixgb Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
joy
kbd
kbdmux Revert back to always using *(int *)arg for now. While this 2006-09-20 11:43:36 +00:00
le Revert the part of rev. 1.3 which changed the software style to be 2006-06-05 15:14:14 +00:00
led
lge - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
lmc The contents pointed by ssi_cables[] is never changed so explicitly 2006-07-21 08:45:00 +00:00
mc146818
mca
mcd
md
mem
mfi Allow hw.mfi.event_locale/hw.mfi.event_class to be set via loader. 2006-09-20 18:49:35 +00:00
mii Add PHY support for BCM5752. 2006-08-31 11:15:18 +00:00
mk48txx Fix spelling in a status message. 2006-09-01 20:14:06 +00:00
mlx
mly
mpt Connect up a QUEUE FULL event with CAM and adjust openings. 2006-09-21 20:35:12 +00:00
mse Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
mxge - Updated to the latest myri10ge firmware 2006-09-15 19:24:45 +00:00
my - Consistently use if_printf() only in interface methods: if_start(), 2006-09-15 15:16:12 +00:00
ncv no need to print unload anymore 2006-07-14 04:36:57 +00:00
nfe Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
nge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
nmdm
nsp Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
null
nve ALTQ-ify nve(4). 2006-05-20 21:08:09 +00:00
ofw Fix spelling and wording in a comment. 2006-09-01 20:12:12 +00:00
patm Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
pbio Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
pccard Thomas Wintergerst reports that when this tsleep went away, certain 2006-08-09 00:05:54 +00:00
pccbb Batch of changes: 2006-08-12 09:06:55 +00:00
pcf
pci spell PCIS_CRYPTO_ENTERTAIN properly... 2006-09-20 06:47:14 +00:00
pdq Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
powermac_nvram Add device to access and modify Open Firmware NVRAM settings in 2006-08-01 22:19:01 +00:00
ppbus Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
ppc Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
pst
puc Add SIIG 4 port serial card based on the Oxford OX16PCI954. 2006-09-04 18:27:14 +00:00
ral remove unnecessary null ptr check 2006-08-02 04:54:14 +00:00
random Now even more style(9)ish. 2006-07-13 11:47:36 +00:00
ray
rc
re Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
rndtest
rp
rr232x Make this compile with -Wundef. 2006-05-16 15:23:27 +00:00
safe Use newly added functions to simplify the code. 2006-06-04 22:17:25 +00:00
sbni
sbsh Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
scc Fix braino: The cl_range field should not hold the shifted I/O 2006-07-26 03:10:01 +00:00
scd
sf Whitespace nits. 2006-09-15 11:01:23 +00:00
si
sio Only treat positive values as errors... 2006-09-14 03:47:59 +00:00
sk Fix invalid reference of mbuf chains. 2006-08-12 01:24:37 +00:00
smbus - Revert making bus_generic_add_child() the default for BUS_ADD_CHILD(). 2006-09-11 22:20:37 +00:00
sn
snc
snp
sound MFp4 the sound Google Summer of Code project: 2006-09-23 20:45:47 +00:00
speaker
spibus Fix comments. 2006-07-17 21:18:03 +00:00
sr
stg no need to print unload anymore. 2006-07-14 04:35:59 +00:00
stge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
streams Clean up the svr4 socket cache and streams code some to make it more easily 2006-07-21 20:40:13 +00:00
sym Commit the results of the typo hunt by Darren Pilgrim. 2006-08-04 07:56:35 +00:00
syscons Introduce a spinlock for synchronizing access to the video output hardware 2006-09-13 15:48:15 +00:00
tdfx
ti Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
trm Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
twa Remove header pollution. 2006-04-30 16:46:11 +00:00
twe
tx Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
txp Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
uart Do not try to call keyboard callback unless keyboard is active and busy. 2006-09-18 22:56:59 +00:00
ubsec - Use m_getcl(), m_get(), and m_gethdr() rather than the older macros for 2006-08-02 17:41:58 +00:00
usb Use usbd_clear_endpoint_stall_async() when clearing endpoint stalls in 2006-09-22 12:45:42 +00:00
utopia
vge Move ethernet VLAN tags from mtags to its own mbuf packet header field 2006-09-17 13:33:30 +00:00
vkbd
vr Whitespace nits. 2006-09-15 11:01:23 +00:00
vx
watchdog
wds Since DELAY() was moved, most <machine/clock.h> #includes have been 2006-05-16 14:37:58 +00:00
wi raw 802.11 packet transmit support 2006-08-05 04:58:25 +00:00
wl Trival whitespace change. 2006-06-19 11:30:36 +00:00
xe o Fix printf(9) formatting: do not use hardcode "0x" and "#" flags 2006-04-15 11:41:40 +00:00
zs Update to new console api. 2006-05-26 18:25:34 +00:00