[Sound-open-firmware] [PATCH 1/5] IPC: Add new enum commands and an index into control data struct

Seppo Ingalsuo seppo.ingalsuo at linux.intel.com
Fri Oct 20 19:15:54 CEST 2017


This patch adds to struct sof_ipc_ctrl_data three new commands
SOF_CTRL_CMD_ENUM, SOF_CTRL_CMD_SWITCH, and SOF_CTRL_CMD_BINARY. In
addition an index parameter is added to address various features or
registers.

Commands SOF_CTRL_CMD_ROUTE, SOF_CTRL_CMD_SRC, SOF_CTRL_CMD_LOOPBACK,
SOF_CTRL_CMD_EQ_SWITCH, SOF_CTRL_CMD_EQ_CONFIG, SOF_CTRL_CMD_MUTE, and
SOF_CTRL_CMD_UNMUTE are removed.

Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo at linux.intel.com>
---
 src/include/uapi/ipc.h | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/include/uapi/ipc.h b/src/include/uapi/ipc.h
index 281e77a..5658b9a 100644
--- a/src/include/uapi/ipc.h
+++ b/src/include/uapi/ipc.h
@@ -437,25 +437,23 @@ struct sof_ipc_stream_posn {
 
 /* control data type and direction */
 enum sof_ipc_ctrl_type {
+	/*  per channel data - uses struct sof_ipc_ctrl_value_chan */
 	SOF_CTRL_TYPE_VALUE_CHAN_GET = 0,
 	SOF_CTRL_TYPE_VALUE_CHAN_SET,
+	/* per component data - uses struct sof_ipc_ctrl_value_comp */
 	SOF_CTRL_TYPE_VALUE_COMP_GET,
 	SOF_CTRL_TYPE_VALUE_COMP_SET,
+	/* bespoke data - struct struct sof_abi_hdr */
 	SOF_CTRL_TYPE_DATA_GET,
 	SOF_CTRL_TYPE_DATA_SET,
 };
 
 /* control command type */
 enum sof_ipc_ctrl_cmd {
-	SOF_CTRL_CMD_VOLUME = 0,
-	SOF_CTRL_CMD_ROUTE,
-	SOF_CTRL_CMD_SRC,
-	SOF_CTRL_CMD_LOOPBACK,
-	SOF_CTRL_CMD_EQ_SWITCH,
-	SOF_CTRL_CMD_EQ_CONFIG,
-	/* Mute is similar to volume, but maps better onto ALSA switch controls */
-	SOF_CTRL_CMD_MUTE,
-	SOF_CTRL_CMD_UNMUTE,
+	SOF_CTRL_CMD_VOLUME = 0, /* maps to ALSA volume style controls */
+	SOF_CTRL_CMD_ENUM, /* maps to ALSA enum style controls */
+	SOF_CTRL_CMD_SWITCH, /* maps to ALSA switch style controls */
+	SOF_CTRL_CMD_BINARY, /* maps to ALSA binary style controls */
 };
 
 /* generic channel mapped value data */
@@ -481,6 +479,7 @@ struct sof_ipc_ctrl_data {
 	/* control access and data type */
 	enum sof_ipc_ctrl_type type;
 	enum sof_ipc_ctrl_cmd cmd;
+	uint32_t index; /* control index for comps > 1 control */
 
 	/* control data - can either be appended or DMAed from host */
 	struct sof_ipc_host_buffer buffer;
@@ -497,7 +496,6 @@ struct sof_ipc_ctrl_data {
 	};
 } __attribute__((packed));
 
-
 /*
  * Component
  */
-- 
2.11.0



More information about the Sound-open-firmware mailing list