As noted on this forum thread, from about here on, there can potentially be an issue with poor ordering of initialisation of audio I/O objects. The thread specifically mentioned the PT8211_2 object, and a change "sneaked in" in PR #436 seems to work OK.
I've been through most of the relevant objects and made them consistent, with the best (I believe) ordering being:
set up hardware and DMA, without enabling them
take update responsibility
attach DMA interrupt
enable DMA
enable hardware
There's no obvious reason why this should be any worse than the previous cases, what I've managed to test to date suggests nothing is broken, and it ought to serve to reduce instances of audio hardware mysteriously not working occasionally.
One caveat - I haven't managed to implement this for the AudioOutputPWM object, because I don't understand the code! I've PMed the most recent author @MarkTillotson for help.
As noted on this forum thread, from about here on, there can potentially be an issue with poor ordering of initialisation of audio I/O objects. The thread specifically mentioned the PT8211_2 object, and a change "sneaked in" in PR #436 seems to work OK.
I've been through most of the relevant objects and made them consistent, with the best (I believe) ordering being:
There's no obvious reason why this should be any worse than the previous cases, what I've managed to test to date suggests nothing is broken, and it ought to serve to reduce instances of audio hardware mysteriously not working occasionally.
One caveat - I haven't managed to implement this for the AudioOutputPWM object, because I don't understand the code! I've PMed the most recent author @MarkTillotson for help.