SAA7164 Episode #2

I’m beginning to wonder what would happen if the deferred worker thread, responsible for dequeueing the DMA buffers after interrupt, and updating the device registers, got so far behind that the DMA buffers we’re finally trying to dequeue have wrapped and are currently in use again.

Hmm, that would cause awkward things to happen and probably lead to a full system hang.

Time to add some jiffy monitoring to the deferred queue handing and gather some statistics on good and badly performing SAA7164 based systems.

Maybe the lockup is as simple as this.

Leave a Reply