freebsd-src/sys/dev/sound/pcm
Ariff Abdullah a1d444e140 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
..
ac97.c Add codec id support for Analog Device AD1986 AC'97 codec. 2006-01-07 05:20:46 +00:00
ac97.h sys/dev/sound/pcm/ac97.c: 2005-10-02 15:37:40 +00:00
ac97_if.m Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
ac97_patch.c The cmi9739_patch function which is referenced by ac97.c (rev. 1.56) now... 2005-10-02 15:50:22 +00:00
ac97_patch.h The cmi9739_patch function which is referenced by ac97.c (rev. 1.56) now... 2005-10-02 15:50:22 +00:00
buffer.c Whats New: 2005-07-31 16:16:22 +00:00
buffer.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
channel.c Pointer align should be generic enough to handle awkward byte size 2006-03-22 00:34:17 +00:00
channel.h - channel.h 2005-09-10 18:10:31 +00:00
channel_if.m Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
dsp.c Remove paranoid thread hijacking check. It cause wierd behaviour 2006-03-30 06:17:03 +00:00
dsp.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
fake.c - fake.c 2005-09-10 17:47:39 +00:00
feeder.c Remove some dead code. 2006-02-23 19:23:55 +00:00
feeder.h Various fixups: 2006-01-22 15:06:49 +00:00
feeder_fmt.c Fix typos and clean up some comments. 2006-01-25 21:13:46 +00:00
feeder_if.m Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
feeder_rate.c Fix typos and clean up some comments. 2006-01-25 21:13:46 +00:00
feeder_volume.c Update my email address, so people know where the exact / 2005-11-14 18:37:59 +00:00
mixer.c Apply more thorough fixes while dealing with device opening and closing: 2006-03-21 06:35:48 +00:00
mixer.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
mixer_if.m Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
sndstat.c sys/dev/sound/pcm/sndstat.c: 2005-10-02 15:43:57 +00:00
sound.c MEGA Fixes / Cleanup 2006-03-31 10:36:36 +00:00
sound.h Apply more thorough fixes while dealing with device opening and closing: 2006-03-21 06:35:48 +00:00
vchan.c - Increase snddev refcount earlier while accessing through sysctl interface 2006-03-31 10:27:47 +00:00
vchan.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00