RidgeRun LeopardBoard SDK Hints
Solutions to known issues
'division by zero in kernel' error when I try to use ALSA input
This is a known issue that has been discussed on the ASOC mailing list. The problem is that the function davinci_pcm_enqueue_dma performs this operations:
data_type = prtd->params->data_type; count = period_size / data_type;
The first time, data_type is set to zero, so we get the error Division by zero in kernel. This is the reason why the pipe arecord | aplay works after running arecord or aplay first.
Apply the asoc-davinci-pcm.patch to the kernel 2.6.29 to resolve this issue.