On Wed, 2013-02-27 at 09:43 -0600, Pierre-Louis Bossart wrote:
It was originally intended that any underrun / overrun issues in a BE DAI would be handled internally by the audio DSP (and this worked well with the OMAP4 ABE). However, it is probably a good a idea to have a better mechanism for reporting BE xrun issues up the stack to the host CPU side too.
Currently the FE PCM xrun mechanism and FE pointer() callback could be used by the host to get the size of any FE:BE underrun/overrun. This isn't ideal and wont work when there can be multiple BEs for a FE.
It looks like some new code is required here to get this working correctly for BEs.
My view is that that underruns at the DSP level are fatal anyway, and that they a) should be avoided with proper real-time designs and b) they should be logged as error conditions to debug should they occur, not be tied to a FE. It would be really complicated to add code to back-propagate the errors, and if you have mixing/routing what individual FEs would do when this is a system error really. -Pierre
I agree, it would mostly be useful for DSP debug purposes e.g. things like DSP clock scaling/gating, FW errors. It was certainly never an issue with the OMAP ABE and we wont need it for SST audio either.
Fwiw, it may not even be too complicated to implement since the BE PCM is a subset of the standard PCM and there is some code that already back propagates the routing when we re-parent BE's. It really depends on whether anyone cares enough to scope out a solution.
Liam