Date: Sun, 26 Nov 2006 12:24:06 +0000 (UTC) From: Ariff Abdullah <ariff@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sys param.h src UPDATING src/sys/dev/sound/pci atiixp.c cmi.c es137x.c ich.c via8233.c src/sys/dev/sound/pci/hda hda_reg.h hdac.c hdac_private.h src/sys/dev/sound/pcm ac97.c ac97.h buffer.c buffer.h channel.c channel.h dsp.c fake.c feeder.c ... Message-ID: <200611261224.kAQCO6dg012323@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
ariff 2006-11-26 12:24:06 UTC FreeBSD src repository Modified files: sys/sys param.h . UPDATING sys/dev/sound/pci atiixp.c cmi.c es137x.c ich.c via8233.c sys/dev/sound/pci/hda hda_reg.h hdac.c hdac_private.h sys/dev/sound/pcm ac97.c ac97.h buffer.c buffer.h channel.c channel.h dsp.c fake.c feeder.c feeder.h feeder_fmt.c feeder_rate.c feeder_volume.c mixer.c sndstat.c sound.c sound.h vchan.c sys/dev/sound/usb uaudio.c Log: Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes in every sense. General ------- - Multichannel safe, endian safe, format safe * Large part of critical pcm filters such as vchan.c, feeder_rate.c, feeder_volume.c, feeder_fmt.c and feeder.c has been rewritten so that using them does not cause the pcm data to be converted to 16bit little endian. * Macrosses for accessing pcm data safely are defined within sound.h in the form of PCM_READ_* / PCM_WRITE_* * Currently, most of them are probably limited for mono/stereo handling, but the future addition of true multichannel will be much easier. - Low latency operation * Well, this require lot more works to do not just within sound driver, but we're heading towards right direction. Buffer/block sizing within channel.c is rewritten to calculate precise allocation for various combination of sample/data/rate size. As a result, applying correct SNDCTL_DSP_POLICY value will achive expected latency behaviour simmilar to what commercial 4front driver do. * Signal handling fix. ctrl+c of "cat /dev/zero > /dev/dsp" does not result long delay. * Eliminate sound truncation if the sound data is too small. DIY: 1) Download / extract http://people.freebsd.org/~ariff/lowlatency/shortfiles.tar.gz 2) Do a comparison between "cat state*.au > /dev/dsp" and "for x in state*.au ; do cat $x > /dev/dsp ; done" - there should be no "perceivable" differences. Double close for PR kern/31445. CAVEAT: Low latency come with (unbearable) price especially for poorly written applications. Applications that trying to act smarter by requesting (wrong) blocksize/blockcount will suffer the most. Fixup samples/patches can be found at: http://people.freebsd.org/~ariff/ports/ - Switch minimum/maximum sampling rate limit to "1" and "2016000" (48k * 42) due to closer compatibility with 4front driver. Discussed with: marcus@ (long time ago?) - All driver specific sysctls in the form of "hw.snd.pcm%d.*" have been moved to their own dev sysctl nodes, notably: hw.snd.pcm%d.vchans -> dev.pcm.%d.vchans Bump __FreeBSD_version. Driver specific --------------- - Ditto for sysctls. - snd_atiixp, snd_es137x, snd_via8233, snd_hda * Numerous cleanups and fixes. * _EXPERIMENTAL_ polling mode support using simple callout_* mechanisme. This was intended for pure debugging and latency measurement, but proven good enough in few unexpected and rare cases (such as problematic shared IRQ with GIANT devices - USB). Polling can be enabled/disabled through dev.pcm.0.polling. Disabled by default. - snd_ich * Fix possible overflow during speed calibration. Delay final initialization (pcm_setstatus) after calibration finished. PR: kern/100169 Tested by: Kevin Overman <oberman@es.net> * Inverted EAPD for few Nec VersaPro. PR: kern/104715 Submitted by: KAWATA Masahiko <kawata@mta.biglobe.ne.jp> Thanks to various people, notably Joel Dahl, Yuriy Tsibizov, Kevin Oberman, those at #freebsd-azalia @ freenode and others for testing. Joel Dahl will do the manpage update. Revision Changes Path 1.466 +13 -0 src/UPDATING 1.8 +354 -196 src/sys/dev/sound/pci/atiixp.c 1.38 +3 -3 src/sys/dev/sound/pci/cmi.c 1.61 +622 -371 src/sys/dev/sound/pci/es137x.c 1.2 +24 -24 src/sys/dev/sound/pci/hda/hda_reg.h 1.9 +456 -171 src/sys/dev/sound/pci/hda/hdac.c 1.3 +10 -1 src/sys/dev/sound/pci/hda/hdac_private.h 1.68 +228 -103 src/sys/dev/sound/pci/ich.c 1.26 +558 -275 src/sys/dev/sound/pci/via8233.c 1.64 +86 -18 src/sys/dev/sound/pcm/ac97.c 1.19 +0 -2 src/sys/dev/sound/pcm/ac97.h 1.29 +60 -26 src/sys/dev/sound/pcm/buffer.c 1.13 +3 -0 src/sys/dev/sound/pcm/buffer.h 1.112 +721 -311 src/sys/dev/sound/pcm/channel.c 1.34 +39 -1 src/sys/dev/sound/pcm/channel.h 1.100 +16 -17 src/sys/dev/sound/pcm/dsp.c 1.17 +2 -1 src/sys/dev/sound/pcm/fake.c 1.38 +452 -134 src/sys/dev/sound/pcm/feeder.c 1.14 +26 -3 src/sys/dev/sound/pcm/feeder.h 1.21 +623 -203 src/sys/dev/sound/pcm/feeder_fmt.c 1.19 +320 -546 src/sys/dev/sound/pcm/feeder_rate.c 1.3 +178 -33 src/sys/dev/sound/pcm/feeder_volume.c 1.56 +5 -3 src/sys/dev/sound/pcm/mixer.c 1.23 +11 -10 src/sys/dev/sound/pcm/sndstat.c 1.107 +40 -48 src/sys/dev/sound/pcm/sound.c 1.73 +280 -7 src/sys/dev/sound/pcm/sound.h 1.26 +458 -131 src/sys/dev/sound/pcm/vchan.c 1.23 +1 -1 src/sys/dev/sound/usb/uaudio.c 1.280 +1 -1 src/sys/sys/param.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611261224.kAQCO6dg012323>