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