[alsa-devel] SB X-Fi driver status update

Takashi Iwai tiwai at suse.de
Thu Oct 16 15:18:32 CEST 2008


now I'm stabilizing the driver a bit.  I hope it won't hang up any
more (so often), and make you happy testing. 


The snd-sbxfi driver is included in my sound-unstable git tree, and
alsa-driver-unstable snapshot tarball.

The git commits can be browsed via 

The snapshot tarball includes HEAD and alsa-kernel/HEAD files.  These
contain alsa-driver and sound git commit logs.  Check these files and
compare with the above gitweb page whether you have the latest

** BUILD **

If you want to build the sbxfi driver on your 2.6.27 git tree, at
best, do the following:

 - pull sound-2.6.git tree devel branch
   % git pull \
	git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-2.6.git devel
 - pull sound-unstable-2.6.git tree topic/sbxfi branch
   % git pull \

In that way, you can update only the sound and keep the rest clean.
(The master branches of sound and sound-unstable git trees are for the
 latest upsteram, i.e. 2.6.28-pre git tree.)

In other versions, it'd be better to use alsa-driver-unstable snapshot
tarball to build external modules.


Below are some updates:

- As default, the driver works only as a constant sample rate, either
  48000 or 96000 (default).  The rate can be changed via the module
  option base_rate.  For enabling the continuous rate support (it was
  on before), define XXX_CONT_RATE in sbxfi.c.

- The debug module option is 1 as default, i.e. showing some debug
  messages but not too often.  You can set debug=0 to suppress, or
  debug=2 or 3 to see more.  If you have problems (especially
  regarding with the sound quality problem), run with debug=2.

- Please check whether the default (base_rate=96000) works as is for
  different rates, formats, channels.  Then try base_rate=48000.

- If you are brave, try recording, too :)  It's no full-duplex, so you
  can't play and record at the same time.  Define XXX_FULL_DUPLEX in
  sbxfi.c to enable the (possible) full-duplex.

- If playback works well, try to define XXX_USE_SG in sbxfi.c.  This
  will make the driver using SG buffer instead of continuous pages.

- Also, test SBXFI_DMA_MASK being DMA_32BIT_MASK, especially if you
  have RAM more than 2GB.

- You can try dmix as well.  E.g. simply run like 
	% aplay -Dplug:dmix:0 foo.wav



More information about the Alsa-devel mailing list