-
Notifications
You must be signed in to change notification settings - Fork 349
Description
Is your feature request related to a problem? Please describe.
Currently if a component source buffer underruns or a component sink buffier overruns the pipeline will enter an XRUN status and attempt recovery. This is desired in most pipelines but some topologies need to support use cases where we expect buffers to underrun or overrun.
Host ---> Proc----> Selector0 --> Buf0 ---- > DAI Playback
|
v
Buf1
|
v
Host <---------------Selector1 <----- Buf2 <----- Echo Ref DAI
In the example above we two host PCMs that can be independently started/stopped thereby causing buf1 to either underrun or overrun (and stop the pipelines). Buf1 should be permmitted to underrun or overrun without invoking pipeline XRUN logic and should over write oldest data (for overrun) and readback 0s (for underrun).
Describe the solution you'd like
Add two new topology token for buffers.
TOKEN_BUFFER_UNDERRUN_NO_XRUN
TOKEN_BUFFER_OVERRUN_NO_XRUN
Firmware should process these tokens and if set for a buffer will not invoke pipeline XRUN status.
If buffer overflows, it should overwrite oldest data.
If buffer underruns, it should read back 0s.