On 07/02/2014 03:05 PM, jonsmirl@gmail.com wrote:
Missing DMA buffer was caused by missing platform_name.
static struct snd_soc_dai_link cdc_dai = { .name = "cdc", .stream_name = "CDC PCM", .codec_dai_name = "sunxi-codec-dai", .cpu_dai_name = "1c22c00.codec", .codec_name = "1c22c00.codec", .platform_name = "1c22c00.codec",
Something is still messed up...
root@linaro-developer:~# aplay x.wav Playing WAVE 'x.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono aplay: pcm_write:1939: write error: Input/output error root@linaro-developer:~#
This error is usually caused by a stuck DMA channel. IOW, the DMA pointer is not moving forward, and after some seconds, ALSA decides that something can't be right and shuts down the stream again.
Maybe start with adding printks to your DMA controller's IRQ routine or something.
Daniel