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