We're doing an ARM-based embedded device, which right now is running
vanilla 2.6.20. For the sake of simplicity we wrote an OSS driver
that's simply double-buffering and writing to the DAC via I2S. We
have a buffer underrun problem that is directly proportional to CPU
load... no glitches when simply cat-ing a file to /dev/dsp, but lots
of glitches when other things are happening on the system. Can
anyone suggest tools/techniques/patches for improving the situation?
Use an alternative scheduler? Figure out which driver might be
turning interrupts off for too long? We're using 20ms buffers which
seems pretty generous.
I know this is a bit of a noob question, but any advice or pointers
to info much appreciated.
darren