[alsa-devel] Strange Problem with snd-hda-intel

Frank Maik Kittelmann fkittelmann at formac.com
Tue May 8 12:52:09 CEST 2012


We have some strange behavior in our audio application using the Realtek 
ALC 888 hardware on a Jetway JNC96FL-525-LF mainboard (Intel Atom 
D525+NM10) in ubuntu 10.10 (2.6.35-32-generic-pae) with the hda-intel 
driver (ALSA version 1.0.23). Sound output is done by mpd (0.17 alpha) 
via hw:0,1 (SPDIF). Basically the main problem seems to be a buffer or 
memory management issue. Once a playback is stopped the very last sample 
is repeated forever, independently from sampling rate or sound file 
format. This sample leads to a constant DC voltage after the DA 
converters. If we mute the SPDIF Output using the ALSAMIXER, there is no 
S/Pdif signal, hence no DC. By demuting again, the same sample appears 
again. The annoying thing is, that this sample always stays for a while 
if we play another sound file. If the sample has been at a high value, 
this leads to a loud noise in the speaker.

We already tried the following steps to solve the problem:

1.) we changed a line in hda_intel.c to reset the fifo

--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1797,7 +1797,7 @@ static int azx_pcm_hw_free(struct 
snd_pcm_substream *substream)
/* reset BDL address */
azx_sd_writel(azx_dev, SD_BDLPL, 0);
azx_sd_writel(azx_dev, SD_BDLPU, 0);
- azx_sd_writel(azx_dev, SD_CTL, 0);
+ azx_stream_reset(chip, azx_dev);
azx_dev->bufsize = 0;
azx_dev->period_bytes = 0;
azx_dev->format_val = 0;


2.) we set 2 parameters in the .config file before kernel compiling

CONFIG_SND_HDA_POWER_SAVE=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0

Both solutions didn´t work for us - still same problem. Has anyone 
another idea how to solve this?

Would be great if we could fix this.

Frank


More information about the Alsa-devel mailing list