[alsa-devel] hda-intel (ALC889) - sound loops/repeats continuously, and general brokenness

Juliano F. Ravasi ml at juliano.info
Wed Oct 20 21:40:48 CEST 2010


 Hello ALSA devs,

(Cc'ing alsa-devel since looks like it can be a driver problem/bug, but
still unsure. Need some expert advice.)

I'm experiencing a lot of problems reproducing audio with an HD Audio
"card" integrated on an Intel DX58SO mainboard. It happens only on this
card, everything is Ok with another (USB) card.

The most visible problem is that `aplay` plays only a small fragment of
audio (less than one second), then hangs and the card keeps reproducing
that fragment continuously in a loop, until killed with Ctrl-C. `aplay
-N` progresses, but each fragment repeats 3 times.

Doing an strace on `aplay`, it hangs here while repeating the audio
fragment:

...
semop(294912, {{0, 0, 0}, {0, 1, SEM_UNDO}}, 2) = 0
semop(294912, {{0, -1, SEM_UNDO|IPC_NOWAIT}}, 1) = 0
ioctl(4, 0x4122, 0x3)                   = 0
ioctl(4, 0x4122, 0)                     = 0
ioctl(4, 0x4122, 0xe4)                  = 0
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1) = 1 ([{fd=3,
revents=POLLIN}])
ioctl(4, 0x4122, 0x3)                   = 0
ioctl(4, 0x4122, 0xe4)                  = 0
ioctl(4, 0x4122, 0x1)                   = 0
read(3,
"\6\0\0\0\1\210\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\210\377\377"...,
128) = 64
read(3, 0x7fff890f6810, 128)            = -1 EAGAIN (Resource
temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLERR|POLLNVAL}], 1, -1^C <unfinished ...>

Descriptor 3 is /dev/snd/timer ... Perhaps time stops progressing for
the driver? `aplay -N` continues a little here because this poll() call
timeouts after 1000ms, but this still repeats each fragment 3 times.

Other audio software (mplayer, amarok) can play audio almost normally,
except when you pause. When paused, the same behavior happens: the last
fragment of sound before pausing keeps repeating continuously until
unpaused.

When the song finishes, the application (tested with mplayer) also
hangs, the last fragment keeps repeating while the process is blocked here:

ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig -icanon -echo
...}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(6, 0x4144^C <unfinished ...>

Descriptor 6 is /dev/snd/pcmC0D0p , and 0x4144 is SNDRV_PCM_IOCTL_DRAIN
ioctl in sound/asound.h. Sometimes mplayer timeouts and reports:

[AO_ALSA] alsa-lib: pcm_hw.c:616:(snd_pcm_hw_drain)
SNDRV_PCM_IOCTL_DRAIN failed (-5): Input/output error

I'm at a loss here. I have already read the sound/alsa/HD-Audio.txt and
tried many of the tweaks described there, but with no luck.

Any help is greatly appreciated.


System information:
http://www.alsa-project.org/db/?f=4ab249b0f301ff20260d7388432e624aa65092d6


Best regards,
Juliano.

-- 
Juliano F. Ravasi ·· http://juliano.info/
5105 46CC B2B7 F0CD 5F47 E740 72CA 54F4 DF37 9E96



More information about the Alsa-devel mailing list