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

Takashi Iwai tiwai at suse.de
Wed Oct 15 11:02:46 CEST 2008


At Wed, 15 Oct 2008 12:26:49 +0400,
Alexey Bazhin wrote:
> 
> On Wed, 15 Oct 2008 08:30:20 +0200
> Takashi Iwai <tiwai at suse.de> wrote:
> 
> > 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?
> No, i'm just building kernel from git with your tree.

In that case, make sure you having CONFIG_SND_DEBUG=y at least.
CONFIG_SND_DEBUG_VERBOSE=y would give you more, but not mandatory
as sbxfi.c doesn't use snd_printdd() much.

> > 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.
> I'll try it later, sorry...

I guess it's a timer issue.  Try to define XXX_SYSTEM_TIMER and rebuild
(and pull the latest GIT before that, since it had a bug).

> > > 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?
> I saw that "The Source <thesourcehim at gmail.com>" was trying to play
> only 24-bit 96khz samples and they were silent.

Ah OK.  Yes, this seems explaining the symptom (but not the cause :)


thanks,

Takashi


More information about the Alsa-devel mailing list