I am developing a project with audio record and playback. I have a DM368 DVR_RDK, it's the main reference for my work.
I use an external AIC3101 codec as the audio record and playback device. I am running into a issue in my application when using OSS driver IOCTL. By running multiple time open(O_RDONLY)-->read-->close , read() may return error. And if open(O_RDONLY)-->read, then running open(O_WRONLY), multiple time write-->SNDCTL_DSP_RESET, I am getting the same issue.
And I test the driver use arecord and aplay. Just a few more times, I get the input/output error. But if I use arecord or aplay one time after the system start, it can work well.
This issue can't be resume unless restart the board.
I print the MCBSP_SPCR_REG register, normal value is 0x02F50031, if the issue appear, the value is 0x02F50037. It means the new MCBSP_DRR_REG data is coming, but EDMA don't read it.
Is it some parameters setting incorrectly, especially the EDMA param? Or it's a OSS driver bug. Is there anyone who had similar experience and was able to resolve the issue?
Thanks in advance.