mirror-linux/include/sound/sof
Peter Ujfalusi 4f0f3c7749
ASoC: SOF: ipc4: Add new message type: SOF_IPC4_GLB_LOAD_LIBRARY_PREPARE
On Intel platforms there is a strict order requirement for the DMA
programming:
DSP side configures the buffer and sets the GEN bit
Host side sets the RUN bit.

In order to follow this flow, a new global message type has been added to
prepare the DSP side of the DMA:

host sends LOAD_LIBRARY_PREPARE with the dma_id
DSP side sets its buffer and sets the GEN bit
Host sets the RUN bit
Host sends LOAD_LIBRARY with dma_id and lib_id
DSP receives the library data.

It is up to the platform code to use the new prepare stage message and how
to handle the reply to it from the firmware, which can indicate that the
message type is not supported/handled.
In this case the kernel should proceed to the LOAD_LIBRARY stage assuming
a single stage library loading:

host sends LOAD_LIBRARY_PREPARE with the dma_id
DSP replies that the message type is not supported/handled
Host acknowledges the return code and sets the RUN bit
Host sends LOAD_LIBRARY with dma_id and lib_id
DSP receives the library data.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Chao Song <chao.song@linux.intel.com>
Link: https://lore.kernel.org/r/20230915114018.1701-4-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-09-15 13:15:33 +01:00
..
ipc4 ASoC: SOF: ipc4: Add new message type: SOF_IPC4_GLB_LOAD_LIBRARY_PREPARE 2023-09-15 13:15:33 +01:00
channel_map.h treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
control.h ASoC: SOF: control.h: Replace zero-length array with DECLARE_FLEX_ARRAY() helper 2022-09-27 12:08:00 +01:00
dai-amd.h ASoC: SOF: Add DAI configuration support for AMD platforms. 2022-11-29 12:56:09 +00:00
dai-imx.h ASoC: SOF/Intel: clarify SPDX license with GPL-2.0-only 2020-05-01 17:45:24 +01:00
dai-intel.h ASoC: SOF: dai-intel: add SOF_DAI_INTEL_SSP_CLKCTRL_MCLK_AON bit 2022-07-25 22:37:02 +01:00
dai-mediatek.h ASoC: SOF: topology: Add support for Mediatek AFE DAI 2021-11-18 13:57:37 +00:00
dai.h ASoC: SOF: Add DAI configuration support for AMD platforms. 2022-11-29 12:56:09 +00:00
debug.h ipc: debug: Add shared memory heap to memory scan 2021-12-17 11:06:19 +00:00
ext_manifest.h ASoC: SOF: ext_manifest: use explicit number for elem_type 2021-02-10 17:17:13 +00:00
ext_manifest4.h ASoC: SOF: Add header for IPC4 manifest 2022-05-12 11:41:27 +01:00
header.h ASoC: SOF: fix 32 signed bit overflow 2022-03-07 13:12:52 +00:00
info.h ASoC: SOF: ipc3-topology: use old pipeline teardown flow with SOF2.1 and older 2022-11-01 18:28:07 +00:00
pm.h ASoC: SOF/Intel: clarify SPDX license with GPL-2.0-only 2020-05-01 17:45:24 +01:00
stream.h ASoC: SOF: Copy compress parameters into extended data 2022-07-12 15:22:07 +01:00
topology.h ASoC: SOF: Deprecate invalid enums in IPC3 2023-07-31 23:24:03 +01:00
trace.h ASoC: SOF: trace: Add runtime trace filtering mechanism 2020-12-07 14:22:05 +00:00
xtensa.h ASoC: SOF/Intel: clarify SPDX license with GPL-2.0-only 2020-05-01 17:45:24 +01:00