[alsa-devel] i.MX6 SGTL5000 hangs with EIO error

Ross Wille audio at cornerbrick.com
Thu May 12 00:14:29 CEST 2016


Hello,

I am doing an ALSA capture on a Wandboard Quad (i.MX6 quad core with 
SGTL5000 codec chip) from the LINEIN1 jack.  I'm using a 4.6.0-rc3-armv7-x0 
kernel.

Sometimes when the audio glitches (for example, when I plug/unplug the audio 
cable or adjust my signal generator) the snd_pcm_readi() function will 
start returning -5 (EIO).

Once this happens, the only way I've been able to recover is to reboot the 
computer.  Calling snd_pcm_close(), snd_pcm_prepare(), snd_pcm_start(), 
etc. doesn't help.  When in this state, running arecord returns IO errors 
as well.

It's interesting that, on rare occasions, I must do a power cycle in order 
to recover.  When a reboot is not effective I've noticed that the capture 
device doesn't appear in /proc/asound/devices.

I don't believe my specific ALSA settings are important, but I'm calling 
snd_pcm_readi() with ALSA set to a sample rate of 48000, format of S16_LE, 
channels=1, frames per period of 960 (20 mS periods), and 4 periods per 
buffer.

This same problem happens on two different Wandboards, so I don't think it's 
a defective board or chip.  It has happened on older kernels as well.

Any ideas?

Thank you!

Wille


More information about the Alsa-devel mailing list