freebsd-dev/sys
Ariff Abdullah a580b31a54 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.
2006-11-26 12:24:06 +00:00
..
amd64 Use a define instead of a "magic" value. 2006-11-23 21:37:04 +00:00
arm Bring in status led support for /dev/led/gpioled on Avila. 2006-11-22 12:57:17 +00:00
boot remove CDDL derive hcall.S 2006-11-23 21:29:50 +00:00
bsm Merge OpenBSM 1.0 alpha 12 import changes into src/sys/bsm. New events 2006-09-25 12:22:07 +00:00
cam XPT_GET_TRAN_SETTINGS can fail- so check for an error and 2006-11-07 23:06:00 +00:00
coda change vop_lock handling to allowing tracking of callers' file and line for 2006-11-13 05:51:22 +00:00
compat Add missed ")". Fix the build. 2006-11-18 17:27:39 +00:00
conf move CDDL licensed machine description support routine files to cddl directory 2006-11-24 01:56:46 +00:00
contrib Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
crypto Initialize T1 to silent gcc warning. 2006-10-22 02:19:33 +00:00
ddb Fix the output format of MI ddb watches in 'show watch' on 64-bit 2006-11-17 16:41:56 +00:00
dev Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes 2006-11-26 12:24:06 +00:00
fs Fix an integer overflow and allow access to files larger than 4GB on 2006-11-20 19:28:36 +00:00
gdb Convert to new console api 2006-05-26 13:54:27 +00:00
geom Fix ia64 build breakage. 2006-11-02 16:24:18 +00:00
gnu Previously, the mount_ext2fs binary listed the acceptable mount 2006-11-18 18:22:11 +00:00
i4b Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
i386 Tweak the comment about mapping a kernel using large pages. 2006-11-25 23:00:46 +00:00
ia64 Since printf also has at least one critical section, we need to 2006-11-18 23:15:25 +00:00
isa Use calendaric calculation support from subr_clock.c instead of home-rolled. 2006-10-02 16:18:40 +00:00
isofs/cd9660 Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
kern Fix a race in soclose() where connections could be queued to the 2006-11-22 23:54:29 +00:00
libkern Add strstr() function to the libkern. 2006-08-12 15:28:39 +00:00
modules o Add uark(4), a driver for Arkmicro Technologies ARK3116 based serial 2006-11-15 09:13:25 +00:00
net Initialize a local variable in 2 places just before it is used, not always 2006-11-23 05:57:15 +00:00
net80211 Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
netatalk Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
netatm Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
netgraph Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
netinet Change error codes returned by protocol operations when an inpcb is 2006-11-22 17:16:54 +00:00
netinet6 - In nd6_rtrequest(), when caching an rtentry, don't forget 2006-11-25 20:38:56 +00:00
netipsec Add priv.h include required to build FAST_IPSEC, which is not present in 2006-11-07 08:58:06 +00:00
netipx Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
netkey With exception of the if_name() macro, all definitions in net_osdep.h 2006-08-04 21:27:40 +00:00
netnatm Change semantics of socket close and detach. Add a new protocol switch 2006-07-21 17:11:15 +00:00
netncp Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
netsmb Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
nfs
nfs4client Fixes up the handling of shared vnode lock lookups in the NFS client, 2006-09-13 18:39:09 +00:00
nfsclient 1) Fix up locking in nfs_up() and nfs_down. 2006-11-20 04:14:23 +00:00
nfsserver Push Giant a bit further off the NFS server in a number of straight 2006-11-24 11:53:16 +00:00
opencrypto When DIAGNOSTIC is defined, verify if we don't free crypto requests from 2006-06-06 15:04:52 +00:00
pc98 MFi386: revisions from 1.641 to 1.643. 2006-11-20 12:32:04 +00:00
pccard
pci Add TSO support. 2006-11-21 04:40:30 +00:00
powerpc Make pmap_enter() responsible for setting PG_WRITEABLE instead 2006-11-12 21:48:34 +00:00
rpc
security Merge posix4/* into normal kernel hierarchy. 2006-11-11 16:26:58 +00:00
sparc64 remove unused reference to tsb pa 2006-11-24 18:36:04 +00:00
sun4v - remove dead code 2006-11-26 07:54:44 +00:00
sys Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes 2006-11-26 12:24:06 +00:00
tools Check for errors when registering and unregistering firmware modules. This 2006-06-16 21:06:03 +00:00
ufs change vop_lock handling to allowing tracking of callers' file and line for 2006-11-13 05:51:22 +00:00
vm The clean_map has been made local to vm_init.c long ago. 2006-11-20 16:23:34 +00:00
Makefile Merge posix4/* into normal kernel hierarchy. 2006-11-11 16:26:58 +00:00