Re: Backported sbxfi driver (UNTESTED!)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Tue, 14 Oct 2008 11:23:42 +0400,The Source wrote:> > Takashi Iwai пишет:> > At Mon, 13 Oct 2008 23:21:47 +0400,> > Alexey Bazhin wrote:> >   > >> On Mon, 13 Oct 2008 18:05:49 +0200> >> Takashi Iwai <tiwai@xxxxxxx> wrote:> >>> >>     > >>> At Mon, 13 Oct 2008 18:02:08 +0200,> >>> I wrote:> >>>       > >>>> At Mon, 13 Oct 2008 17:43:03 +0200,> >>>> I wrote:> >>>>         > >>>>> For example, the latest snapshot I uploaded now has> >>>>> alsa-kernel/HEAD: a3e1ef74a8ec8b6e3c30f7aa06c5d5d2f2bea7a9 Merge> >>>>> branch 'topic/sbxfi'> >>>>>           > >>>> ... and again updated to:> >>>>   5d425dd626d107ff2b2ea97c27068f7ee4b36dd1 Merge branch> >>>> 'topic/sbxfi'> >>>>         > >>> So, guys, please check the latest one.> >>>> >>> If the hang up still occurs with this version, then try to define> >>> XXX_SYSTEM_TIMER in sbxfi.c, which is undefined as default.> >>> With this build option, the driver will use the system timer instead> >>> of emu20k1 timer irqs.> >>>> >>> If this still doesn't help, try to remove all spinlocks.  That is,> >>> just comment out all spin_lock*() and spin_unlock*() calls to avoid> >>> spin deadlocks.  Of course, it can be racy, but better than a spin> >>> deadlock.> >>>       > >> 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@mayonaka:~# 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> >>> >> Also i tried mplayer, 96khz works almost fine (very rare cracklings),> >> 48khz plays slow (like playing 96khz sample on 48khz rate without> >> resampling), 44.1khz doesn't work at all (mplayer doesn't even> >> show that it plays).> >>     > >> > How about the patch below for 48kHz?> >> > Not sure whether 44.1kHz works at all with the current driver code.> > I just guessed that the pitch parameter would handle that.  But, maybe> > it's not enough...> >> >   > >> Master control on mixer seems to be working fine.> >>     > >> > OK.> >> > [BTW, it'd be appreciated if you add my address to Cc (or, To: my> >  address and Cc: to ML like other people do), so that I can check your> >  post quickly.]> >> >> > thanks,> >> > Takashi> >> >> > diff --git a/sound/pci/sbxfi/sbxfi.c b/sound/pci/sbxfi/sbxfi.c> > index 3fde6a9..47ba941 100644> > --- a/sound/pci/sbxfi/sbxfi.c> > +++ b/sound/pci/sbxfi/sbxfi.c> > @@ -1005,7 +1005,8 @@ static void sbxfi_setup_play_pitch(struct sbxfi *chip,> >  	unsigned int pitch, pitch_ch;> >  > >  	/* convert to fixed-point 8.24 format */> > -	pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate);> > +	/* pitch = div_u64(runtime->rate * (1ULL << 24), chip->base_rate); */> > +	pitch = div_u64(runtime->rate * (1ULL << 24), 96000);> >  > >  	for (i = 0; i < 2; i++) {> >  		/* write the pitch to param ring of the corresponsing SRC> > _______________________________________________> > Alsa-devel mailing list> > Alsa-devel@xxxxxxxxxxxxxxxx> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel> >> >   > Ok, I downloaded todays (14th October) snapshot. At least ftp sais the > file alsa-driver-unstable-snapshot.tar.bz2 is of 14.10.2008.
Check HEAD files to make sure it's the latest one as I posted.
> I extracted it, ran configure, make , make install. No reboot on aplay > now, but Oops occurs. Tried with sysytem timer (make clean, changed > #undef XXX_SYSTEM_TIMER to #define XXX_SYSTEM_TIMER in sbxfi.c, > configure, make, make install). Oops again.> Here's the error message:> Playing foo.wav: Signed 16bit Little Endian, Rate 22050Hz, Mono
As I wrote, try 96kHz samples at first.
> BUG: unable to handle NULL pointer dereference at 0000000000000008> IP: <4> Spurious LAPIC timer interrupt on CPU 1> [<ffffffff811410c7>] __list_add+0x1/0x5b> PGD 14c14e067 PUD 14c14f067> PMD 14e576067 PTE 0> Oops: 0000 [1]
More log below that point please.  It contains the stack trace.

thanks,
Takashi_______________________________________________Alsa-devel mailing listAlsa-devel@xxxxxxxxxxxxxxxxxxxx://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux