[alsa-devel] 1.0.16->1.0.17 regression for some HDA NVidia's

Hans-Frieder Vogt hfvogt at gmx.net
Sun Jul 13 08:45:55 CEST 2008


Just a few more things to add (maybe it gets clearer):
On a GeForce 8200 board (MCP78S), using the pcm example program from alsa-lib-1.0.17rc2/test,
kernel driver version 1.0.17rc3:
(ignoring my general sound distortion problem which I will address again in another post)

bdl_pos_adj=0
both devices "default" and "plughw:0,0" work, i.e. give continuous sound

bdl_pos_adj=1
bdl_pos_adj=2
bdl_pos_adj=8
no sound, pcm seems to gets stuck (example program does not return)

bdl_pos_adj=16
bdl_pos_adj=32
bdl_pos_adj=64
bdl_pos_adj=128
bdl_pos_adj=256
bdl_pos_adj=512
bdl_pos_adj=1024
bdl_pos_adj=2048
default device: works, i.e. sound
plughw:0,0: no sound, pcm gets stuck

bdl_pos_adj=4096
bdl_pos_adj=8192
ALSA /home/haef/Treiber/alsa-driver-1.0.17rc3/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
default device: works, i.e. sound
plughw:0,0: just one beep (approx. 0.5s of sound), then pcm gets stuck

Any ideas?

Am Freitag, 11. Juli 2008 schrieb Ozan Çağlayan:
> Takashi Iwai wrote On 12-07-2008 00:25:
> > At Fri, 11 Jul 2008 09:31:59 +0300,
> > Ozan Çağlayan wrote:
> >   
> >> Takashi Iwai wrote On 11-07-2008 20:54:
> >>     
> >>> To make sure: bdl_pos_adj=32 or higher doesn't work, too?
> >>> Also, if you set bdl_pos_adj=0, do you get any warning messages?
> >>>
> >>> It's fine to take bdl_pos_adj=0 as default for Nvidia chips.  But,
> >>> basically this value (when it's big enough) shouldn't disable the
> >>> sound at all.
> >>>   
> >>>       
> >> I've tried the values (2,8,16,32,64,128,256,1024,2048,4096,8192).
> >> When the parameter is set to 2048,4096 or 8192, here's the dmesg message 
> >> we get:
> >>
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >> hda-intel: IRQ timing workaround is activated for card #0. Suggest a 
> >> bigger bdl_pos_adj.
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >> ALSA ../alsa-kernel/pci/hda/hda_intel.c:1056: Too big adjustment 4096
> >>
> >> The sound works well with those values.
> >>     
> >
> > It's because bdl_pos_adj=0 is taken as fallback.
> >
> >   
> >> The other small values avoid pulse to work correctly with ALSA.
> >>     
> >
> > What about other applications?  Could you run ALSA apps, e.g. aplay,
> > without pulse?
> >   
> Yes. I can play an mp3 file with mplayer, using alsa output.
> Without pulse everything was already fine..
> >   
> >> When the parameter is set 0, the sound works well and the driver outputs 
> >> this message:
> >> hda-intel: IRQ timing workaround is activated for card #0. Suggest a 
> >> bigger bdl_pos_adj.
> >>     
> >
> > So, it means that the problem still exists.  The driver delays the
> > call of snd_pcm_period_elapsed() with a busy loop.  The bdl_pos_adj
> > adds a constant delay, OTOH.
> >   
> So If I resume a little bit what we have now:
> 
> - On a system which does not use pulseaudio, the chipset works with 
> 1.0.16 and all 1.0.16 RC's.
> - On a system using pulseaudio, it's impossible to get sound when using 
> 1.0.17rc2 and 1.0.17rc3 if bdl_pos_adj is not explicitly set to 0. dmesg 
> output contains also these two lines when the module is loaded:
> 
> ACPI: PCI Interrupt 0000:00:10.1[B] -> Link [AAZA] -> GSI 22 (level, 
> low) -> IRQ 22
> hda-intel: IRQ timing workaround is activated for card #0. Suggest a 
> bigger bdl_pos_adj.
> 



-- 
--
Hans-Frieder Vogt                 e-mail: hfvogt <at> gmx .dot. net


More information about the Alsa-devel mailing list