I have a Corewind WiFiG25 board based on the AT91SAMG25 400 MHz following Arm processor running Linux 3.6.9 built using Buildroot. I am attempting to play mp3 files using mpg123 connected to an ALSA device consisting of a USB connected TI PCM2900C CODEC. The files play, but they "crackle" during playback.
I suspected the processor of being overloaded playing the files, but the top command reveals less than 20% CPU utilization. To further test this hypothesis I made the CPU very busy to see if the issue got worse. I made the CPU busy using the following command
cat /dev/zero > /dev/null
This consumed 95% or more of the CPU. The issue did not get worse, but instead the audio noise vanished completely and the audio was great. I then suspected power management issues were involved.
I configured the kernel without power management, but that did not improve audio performance.
I have searched extensively for other ideas or approaches in an effort to validate my latest thinking, but to no avail. Lots of discussion on how to enable power-management and audio issues on linux desktop systems, but not this sort of embedded environment.
Any thoughts, hypotheses, test, etc. you might think of would be welcome. I would rather not leave the cat /dev/zero > /dev/null
in my final system :)