Hi,
now I'm stabilizing the driver a bit. I hope it won't hang up any more (so often), and make you happy testing.
** DOWNLOAD **
The snd-sbxfi driver is included in my sound-unstable git tree, and alsa-driver-unstable snapshot tarball. git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-unstable-2.6.git ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-unstable-snapshot.tar.gz
The git commits can be browsed via http://git.kernel.org/?p=linux/kernel/git/tiwai/sound-unstable-2.6.git;a=sum...
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 version.
** 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 \ git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-unstable-2.6.git\ topic/sbxfi
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.
** UPDATED NOTES **
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
thanks,
Takashi