freebsd-skq/sys/dev/sound
ariff 063f9c01c6 MEGA Fixes / Cleanup
--------------------

- Seal the fate of long standing memory leak (4 years, 7 months) during
  pcm_unregister(). While destroying cdevs, scan / detect possible
  children and free its SLIST placeholder properly.
- Optimize channel allocation / numbering even further. Do brute cyclic
  checking only if the channel numbering screwed.
- Mega vchan create/destroy cleanup:
  o Implement pcm_setvchans() so everybody can use it freely instead
    of implementing their own, be it through sysctl or channel auto
    allocation.
  o Increase vchan creation/destruction resiliency:
    + it's possible to increase/decrease total vchans even during
      busy playback/recording. Busy channel will be left alone, untouched.
      Abusive test sample:
      # play whatever...
      #
         while : ; do
           sysctl hw.snd.pcm0.vchans=1
           sysctl hw.snd.pcm0.vchans=10
           sysctl hw.snd.pcm0.vchans=100
           sysctl hw.snd.pcm0.vchans=200
         done
      # Play something else, leave above loop running frantically.
    + Seal another 4 years old bug where it is possible to destroy (virtual)
      channel even when its cdevs being referenced by other process.
      The "First Come First Served" nature of dsp_clone() is the main
      culprit of this issue, and usually manifest itself as dangling
      channel <-> process association. Ensure that all of its cdevs
      are free from being referenced before destroying it (through
      ORPHAN_CDEVT() macross).

All these fixes (including previous fixes) will be MFCed, later.
2006-03-31 10:36:36 +00:00
..
isa Recover (?) support for AD1815 based ISA soundcards. 2006-03-21 03:47:25 +00:00
pci Don't set primary resume interrupt flag during channel initialization 2006-03-22 22:24:23 +00:00
pcm MEGA Fixes / Cleanup 2006-03-31 10:36:36 +00:00
sbus Take advantage of ebus(4) having switched to SYS_RES_MEMORY for the 2005-05-19 18:13:49 +00:00
usb Convert NULL checks into KASSERT (and move them before the first 2006-02-05 17:47:26 +00:00
chip.h
driver.c Sort list of modules. 2006-01-23 11:58:01 +00:00