[alsa-devel] Backported sbxfi driver (UNTESTED!)

Takashi Iwai tiwai at suse.de
Wed Oct 15 08:30:20 CEST 2008


At Wed, 15 Oct 2008 00:35:31 +0400,
Alexey Bazhin wrote:
> 
> On Tue, 14 Oct 2008 08:45:20 +0200
> Takashi Iwai <tiwai at suse.de> wrote:
> 
> > At Mon, 13 Oct 2008 23:21:47 +0400,
> > Alexey Bazhin wrote:
> > > 
> > > Now it doesn't hangs :)
> > 
> > Glad to hear.  Did you have to use XXX_SYSTEM_TIMER or any workaround
> > needed?  Or, did it work as is?
> > 
> > > but speakers-test produces crackling sine and
> > > fails on test...
> > 
> > Do you mean it aborts some time later after starting the stream?
> > Could you show the kernel messages?  The default debug level should
> > suffice, I guess.  If any, try debug=2.
> 
> root at mayonaka:~/linux-2.6# dmesg -c >/dev/null
> root at mayonaka:~/linux-2.6# insmod sound/pci/sbxfi/snd-sbxfi.ko
> root at mayonaka:~/linux-2.6# dmesg
> [ 2957.493602] SBXFI: INIT HW
> [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000
> root at mayonaka:~/linux-2.6# speaker-test -c 2 -r 96000 -t sine
> 
> speaker-test 1.0.15
> 
> Playback device is default
> Stream parameters are 96000Hz, S16_LE, 2 channels
> Sine wave rate is 440.0000Hz
> Rate set to 96000Hz (requested 96000Hz)
> Buffer size range from 32 to 16384
> Period size range from 32 to 16384
> Using max buffer size 16384
> Periods = 4
> was set period_size = 4096
> was set buffer_size = 16384
>  0 - Front Left
> 
> 
> 
> Write error: -5,Input/output error
> xrun_recovery failed: -5,Input/output error
> Transfer failed: Operation not permitted
> root at mayonaka:~/linux-2.6# 
> root at mayonaka:~/linux-2.6# dmesg
> [ 2957.493602] SBXFI: INIT HW
> [ 2957.596133] SBXFI: Setting TLB buffer page 0xc02000
> [ 2974.854578] SBXFI: Allocate SRC 0
> [ 2974.855368] SBXFI: allocated TLB at 0 for 16 pages
> [ 2974.855372] SBXFI: filled TLB pages starting at 0xc10000
> [ 2974.855393] SBXFI: PLAYBACK PREPARE: rate=96000, period_size=4096,
> buffer_size=16384
> [ 2974.855396] SBXFI: INIT DAC
> [ 2974.855400] SBXFI: RESET DAC
> [ 2975.059435] SBXFI: SETUP I2S
> [ 2975.059445] SBXFI: Pitch [0:fa6] = 0x1000000
> [ 2975.059449] SBXFI: Pitch [80:7a6] = 0x1000000
> [ 2975.059453] SBXFI: Pitch [1:fb6] = 0x1000000
> [ 2975.059456] SBXFI: Pitch [81:7b6] = 0x1000000
> [ 2975.059460] SBXFI: Amp [00:0001] = 0x101c
> [ 2975.059465] SBXFI: Amp [80:07a6] = 0x101c
> [ 2975.059470] SBXFI: Amp [01:0011] = 0x101c
> [ 2975.059474] SBXFI: Amp [81:07b6] = 0x101c
> [ 2975.062594] SBXFI: PLAY TRIGGER START
> [ 2975.062600] SBXFI: SETUP SRC: ch=0x0, start=0x0, loop=0x10000,
> cache=0x100, ctrl=0x1045c 
> [ 2975.062612] SBXFI: SETUP SRC: ch=0x1, start=0x0, loop=0x10000,
> cache=0x100, ctrl=0x5c
> [ 2975.062625] SBXFI: PLAY UPDATE TIMER
> [ 2995.148059] SBXFI: PLAY TRIGGER STOP
> [ 2995.148072] SBXFI: PLAY UPDATE TIMER
> [ 2995.148079] SBXFI: release TLB at 0 for 16 pages
> [ 2995.148218] SBXFI: Release SRC 0

Hmm, then there is no serious error here.  Did you build the driver
with --with-debug=full or --with-debug=detect option?
Also, run with debug=2.  Then it prints the timer/IRQ handling, too.

Does this happen with aplay, too?

Also, please track via strace to check which syscall it gets an error.

> Two more things:
> -speakers-test on 48khz doesn't produce above errors, but frequency is
> still not right

OK, let's postpone this issue.

> -24-bit samples is silent for me too

Too?  What are other cases that cause silent output?

Also, can you check whether "aplay -M foo.wav" (with 96khz sound file)
gives any output?

> > How about the patch below for 48kHz?
> Didn't changed anything...

OK.  Just to make clear: you get any (more or less) reasonable sound,
not silent, with 96kHz stereo, right?
If yes, then there seems a difference between machines or
environments.  Could you clarify your system again?


Takashi


More information about the Alsa-devel mailing list