From owner-cvs-src@FreeBSD.ORG Sun Nov 26 12:24:21 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 43AD016A4D0; Sun, 26 Nov 2006 12:24:21 +0000 (UTC) (envelope-from ariff@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4CEF443DBF; Sun, 26 Nov 2006 12:23:13 +0000 (GMT) (envelope-from ariff@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kAQCO6JO012325; Sun, 26 Nov 2006 12:24:06 GMT (envelope-from ariff@repoman.freebsd.org) Received: (from ariff@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kAQCO6dg012323; Sun, 26 Nov 2006 12:24:06 GMT (envelope-from ariff) Message-Id: <200611261224.kAQCO6dg012323@repoman.freebsd.org> From: Ariff Abdullah Date: Sun, 26 Nov 2006 12:24:06 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: 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 ... X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Nov 2006 12:24:21 -0000 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 * Inverted EAPD for few Nec VersaPro. PR: kern/104715 Submitted by: KAWATA Masahiko 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