diff options
| author | Mark Brown <broonie@kernel.org> | 2023-03-14 16:58:42 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2023-03-14 16:58:42 +0300 |
| commit | bec88efd7fd158eef4fdda1007cf831926a95f16 (patch) | |
| tree | 03227590d098431221269413c6ba9079d1758860 /include | |
| parent | 12e3b2848bfa8197062b7989eefb7c081d372fb8 (diff) | |
| parent | a062c8899fede2ab5660a817e9b602d3fa280a99 (diff) | |
| download | linux-bec88efd7fd158eef4fdda1007cf831926a95f16.tar.xz | |
ASoC: SOF: ipc4: Add support for bytes control
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>:
This series will add support for bytes control and topology types.
With IPC4 only the binary payload is sent to the firmware via LARGE_CONFIG
message (which does similar multi-part message handling as the IPC3 control
message did).
The bytes payload itself is not checked by the kernel but user space expected to
wrap it in sof_abi_hdr struct in order to get the target information of the
binary data.
The SOF firmware and sof-ctl have been updated to support blobs used in IPC4
setups.
Diffstat (limited to 'include')
| -rw-r--r-- | include/uapi/sound/sof/abi.h | 2 | ||||
| -rw-r--r-- | include/uapi/sound/sof/header.h | 27 |
2 files changed, 21 insertions, 8 deletions
diff --git a/include/uapi/sound/sof/abi.h b/include/uapi/sound/sof/abi.h index 3566630ca965..45c657c3919e 100644 --- a/include/uapi/sound/sof/abi.h +++ b/include/uapi/sound/sof/abi.h @@ -60,5 +60,7 @@ /* SOF ABI magic number "SOF\0". */ #define SOF_ABI_MAGIC 0x00464F53 +/* SOF IPC4 ABI magic number "SOF4". */ +#define SOF_IPC4_ABI_MAGIC 0x34464F53 #endif diff --git a/include/uapi/sound/sof/header.h b/include/uapi/sound/sof/header.h index e9bba93a5399..cb3c1ace69e3 100644 --- a/include/uapi/sound/sof/header.h +++ b/include/uapi/sound/sof/header.h @@ -11,19 +11,30 @@ #include <linux/types.h> -/* - * Header for all non IPC ABI data. +/** + * struct sof_abi_hdr - Header for all non IPC ABI data. + * @magic: Magic number for validation + * for IPC3 data: 0x00464F53 ('S', 'O', 'F', '\0') + * for IPC4 data: 0x34464F53 ('S', 'O', 'F', '4') + * @type: module specific parameter + * for IPC3: Component specific type + * for IPC4: parameter ID (param_id) of the data + * @size: The size in bytes of the data, excluding this struct + * @abi: SOF ABI version. The version is valid in scope of the 'magic', IPC3 and + * IPC4 ABI version numbers have no relationship. + * @reserved: Reserved for future use + * @data: Component data - opaque to core * * Identifies data type, size and ABI. * Used by any bespoke component data structures or binary blobs. */ struct sof_abi_hdr { - __u32 magic; /**< 'S', 'O', 'F', '\0' */ - __u32 type; /**< component specific type */ - __u32 size; /**< size in bytes of data excl. this struct */ - __u32 abi; /**< SOF ABI version */ - __u32 reserved[4]; /**< reserved for future use */ - __u32 data[]; /**< Component data - opaque to core */ + __u32 magic; + __u32 type; + __u32 size; + __u32 abi; + __u32 reserved[4]; + __u32 data[]; } __packed; #define SOF_MANIFEST_DATA_TYPE_NHLT 1 |
