Hi
Now I'm creating sound driver. But can't reproduce continuously.
(snip)
Q1) When I play sound, aplay said
underrun!!! (at least 0.000 ms long) underrun!!! (at least 0.000 ms long)
(snip)
Q2) The reason that it can not reproduce continuously seems soc-core.c :: soc_pcm_trigger timing. Call timing of soc_pcm_trigger is slow.
I attached my stupid driver. fsi.c, dma-sh7724.c, fsi.h This driver assume that input data is 16bit sound data.
The calculation of the transmission data size of FSI is confusing. But may be it is OK about this in my stupid driver.
I would like to ask following.
o Is there something wrong about call timing of snd_pcm_period_elapsed ? if period is 4, snd_pcm_period_elapsed is called 4 times. Is it correct ? If not what should I do ?
o Is there something wrong about return value of snd_pcm_ops :: pointer ?
o why aplay say underrun!!! ? where should I check ? - XXX size - XXX value - XXX call timing - XXX function return value - should have XXX function or do XXX operation... Does this have relationship to snd_pcm_period_elapsed ?
o soc-core.c :: soc_pcm_trigger timing seems slow. So, it can not reproduce continuously. but how to controll this ?
o sometimes BUG_ON is called when I use kmalloc on snd_soc_dai_ops :: trigger. This BUG_ON came frome cache_alloc_refill. Should I not use kmalloc on trigger function ?