linux/include/sound/sof
Artur Kloniecki 7893df67e9
ASoC: SOF: Add XRUN flags field to struct sof_ipc_buffer.
Currently if a component source buffer underruns or a component sink
buffer 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 permitted to underrun or overrun
without invoking pipeline XRUN logic and should over write oldest data
(for overrun) and readback 0s (for underrun).

2 flags have been added for use during buffer instantiation:
SOF_BUF_OVERRUN_PERMITTED and SOF_BUF_UNDERRUN_PERMITTED,
along with struct sof_ipc_buffer member fields: flags and reserved.
Flags field is supposed to hold the above-mentioned flags to allow
some control over XRUN behaviour.
Also added reserved field to the structure in case it comes in handy
some time in the future.

This is an incremental ABI change as the new fields are ignored by older
versions of the firmware.

Signed-off-by: Artur Kloniecki <arturx.kloniecki@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Link: https://lore.kernel.org/r/20200415202816.934-16-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-04-16 00:23:11 +01:00
..
channel_map.h ASoC: SOF: ipc: channel map structures 2019-12-10 13:13:30 +00:00
control.h treewide: remove SPDX "WITH Linux-syscall-note" from kernel-space headers again 2019-07-25 11:05:10 +02:00
dai-imx.h ASoC: SOF: imx: Describe SAI parameters to be sent to DSP 2019-12-18 19:54:07 +00:00
dai-intel.h ASoC: SOF: IPC: dai-intel: move ALH declarations in header file 2020-03-27 15:16:30 +00:00
dai.h ASoC: SOF: imx: Describe SAI parameters to be sent to DSP 2019-12-18 19:54:07 +00:00
header.h ASoC: SOF: Implement Probe IPC API 2020-02-18 21:52:06 +00:00
info.h ASoC: SOF: make sof_ipc_cc_version to fixed length 2020-04-16 00:23:10 +01:00
pm.h ASoC: SOF: ipc: introduce message for DSP power gating 2019-10-28 14:43:31 +00:00
stream.h ASoC: SOF: ipc: introduce no_stream_position in sof_ipc_stream_params struct 2019-10-01 18:35:09 +01:00
topology.h ASoC: SOF: Add XRUN flags field to struct sof_ipc_buffer. 2020-04-16 00:23:11 +01:00
trace.h ASoC: SOF: change type char to uint8_t in trace.h 2020-04-16 00:23:08 +01:00
xtensa.h treewide: remove SPDX "WITH Linux-syscall-note" from kernel-space headers again 2019-07-25 11:05:10 +02:00