This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB Audio problem with BeagleBone Black + SDK 07.00.00.00.

My former Q and A is follows:

http://e2e.ti.com/support/embedded/linux/f/354/t/347090.aspx

I meet the other problems with USB audio.

I'm coding audio communication application (like SIP client) work with USB audio devices.
The application faces the following problems with both PIO / DMA mode kernel of musb.
If there are any solutions that USB audio properly works without following issues, please let me know.
This time, the application keeps grasping USB audio device, so the problem I reported former Q & A is not concerned.

1. With PIO mode kernel.
- audio transmission works fine until EPIPE error occurs.
- EPIPE error occurs when snd_pcm_readi() / snd_pcm_write() is called about once in 10 secs.
- when the error occurs, snd_pcm_prepare() is called for recover, but it results more EPIPE errors at the following snd_pcm_readi() / snd_pcm_write() calls. I think it caused by high load of recover process.
- My application uses about 10% of CPU, and total load is less than 20% indicated by top command.

2. With DMA mode kernel.
- EPIPE error never occurs.
- kworker process wastes about 90% of CPU. The following line is the result of top command.
47 2 root RW 0 0% 91% [kworker/0:1]
- Audio playback from USB audio device has continuous noise in proper playback. It seems sample loss of playback audio data.

I prefer the DMA mode kernel, because the stability is much higher than PIO mode. But PIO mode is also OK if effective solution not to occur EPIPE frequently.
I find the following patch for DMA mode, but it does not effective for my case.
http://www.spinics.net/lists/linux-usb/msg101678.html

If there are any solution, workaround or suggestion, please let me know.