freebsd-dev/sys/dev/sound/pci
Ariff Abdullah e4e61333ff Last (again ?!?) major commit for RELENG_7, featuring total Giant
eradication in/from userland path, countless locking fixes, etc.

- General sleep call through msleep(9) has been converted to condvar(9)
  with better consistencies.
- Heavily guard every possible "slow path" entries (open(), close(),
  few ioctl()s, sysctls), but once it entering "fast path" (io, interrupt
  started), they are free to fly on their own.
- Rearrange locking sequences, resulting better concurrency and
  serialization. Large part doesn't even need locking at all, and will be
  removed in future. Less clutter, except in few places due to lock
  ordering.
- Anonymous mixer object creation/deletion to simplify mixer handling
  beyond typical mixer ioctls.
  Submitted by:		chibis (with modifications)
- Add few mix_[get|set|..] functions to avoid calling mixer_ioctl()
  directly using cryptic arguments.
- Locking fixes to avoid possible deadlock with (still under Giant) USB.
- Better simplex/duplex device handling.
- Recover mmap() functionality for recording, which has been lost
  since 2.2.x - 3.x (the introduction of newpcm). Full-duplex mmap still
  doesn't work (due to VM/page design), but people still can mmap
  both by opening each direction separately. mmaped playback is guarantee
  to work either way.
- New sysctl: "hw.snd.compat_linux_mmap" to allow PROT_EXEC page
  mapping, due to recent changes in linux compatibility layer which
  require it. All linux applications that using sound + mmap() (mostly games)
  require this to be enabled. Disabled by default.
- Other goodies.. too many, that will increase releng7 shareholder value
  and make users of releng6 (and below) cry ;)

* This commit should be atomic. If anything goes wrong (not counting problem
  originated from elsewhere), I will not hesitate to revert everything back
  within 12 hours. This substantial changes itself not a rocket science
  and the process has begun for almost 2 years, and lots of incremental
  changes are already in place during that period of time.
* Some issues does occur in snd_emu10kx (note the 'x') due to various
  internal locking issues and it is currently being worked on by chibis.

Tested by:	chibis (Yuriy Tsibizov), joel, Alexandre Vieira,
          	many innocent souls...
2007-06-16 03:37:28 +00:00
..
hda Drain all callout handlers during driver detach appropriately. 2007-06-14 11:13:38 +00:00
als4000.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
als4000.h
atiixp.c Drain all callout handlers during driver detach appropriately. 2007-06-14 11:13:38 +00:00
atiixp.h Various cleanups. Revert DMA alignmnet back to 2 since the original 2006-10-01 13:30:30 +00:00
au88x0.c sndbuf_alloc() now accept dmaflags argument which will be forwarded to 2007-04-18 18:26:41 +00:00
au88x0.h
aureal.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
aureal.h
cmi.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
cmireg.h
cs4281.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
cs4281.h
csa.c Fix (another, more to come) ivar memory leak during driver detach. 2007-03-17 19:37:09 +00:00
csapcm.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
csareg.h
csavar.h
ds1-fw.h
ds1.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
ds1.h
emu10k1.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
emu10kx-midi.c Fix a compile time problem on amd64. I'm not sure if the fix is correct 2006-07-16 20:10:08 +00:00
emu10kx-pcm.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
emu10kx.c Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
emu10kx.h Extend the emu10kx driver. With the words of the author: 2007-01-06 18:59:35 +00:00
envy24.c Bring in a bunch of bug fixes and some code to support more chipsets. 2007-05-27 19:58:39 +00:00
envy24.h Bring in a bunch of bug fixes and some code to support more chipsets. 2007-05-27 19:58:39 +00:00
envy24ht.c Use standard pcm_get/setflags() rather than dereferencing softc while 2007-06-02 17:28:26 +00:00
envy24ht.h Bring in a bunch of bug fixes and some code to support more chipsets. 2007-05-27 19:58:39 +00:00
es137x.c Last (again ?!?) major commit for RELENG_7, featuring total Giant 2007-06-16 03:37:28 +00:00
es137x.h * Register programming error during device initialization 2005-07-31 13:19:38 +00:00
fm801.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
ich.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
ich.h
maestro3.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
maestro_reg.h
maestro.c Fix severe out-of-bound mtx "type" pointer, causing WITNESS refcount 2007-03-15 16:41:27 +00:00
neomagic-coeff.h
neomagic.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
neomagic.h
solo.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
spicds.c Bring in a bunch of bug fixes and some code to support more chipsets. 2007-05-27 19:58:39 +00:00
spicds.h Bring in a bunch of bug fixes and some code to support more chipsets. 2007-05-27 19:58:39 +00:00
t4dwave.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
t4dwave.h
via82c686.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
via82c686.h
via8233.c Drain all callout handlers during driver detach appropriately. 2007-06-14 11:13:38 +00:00
via8233.h
vibes.c Filter/compress the amount of channel trigger. This should reduce 2007-06-11 00:49:46 +00:00
vibes.h