mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-17 05:45:20 +00:00
ASoC: SOF: ipc4-topology: Add definition for generic switch/enum control
Currently IPC4 has no notion of a switch or enum type of control which is a generic concept in ALSA. The generic support for these control types will be as follows: - large config is used to send the channel-value par array - param_id of a SWITCH type is 200 - param_id of an ENUM type is 201 Each module need to support a switch or/and enum must handle these universal param_ids. The message payload is described by struct sof_ipc4_control_msg_payload. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20230919103115.30783-2-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
88e20c1f8c
commit
060a07cd9b
@ -319,7 +319,7 @@ struct sof_ipc4_copier {
|
||||
/**
|
||||
* struct sof_ipc4_ctrl_value_chan: generic channel mapped value data
|
||||
* @channel: Channel ID
|
||||
* @value: gain value
|
||||
* @value: Value associated with @channel
|
||||
*/
|
||||
struct sof_ipc4_ctrl_value_chan {
|
||||
u32 channel;
|
||||
@ -343,6 +343,23 @@ struct sof_ipc4_control_data {
|
||||
};
|
||||
};
|
||||
|
||||
#define SOF_IPC4_SWITCH_CONTROL_PARAM_ID 200
|
||||
#define SOF_IPC4_ENUM_CONTROL_PARAM_ID 201
|
||||
|
||||
/**
|
||||
* struct sof_ipc4_control_msg_payload - IPC payload for kcontrol parameters
|
||||
* @id: unique id of the control
|
||||
* @num_elems: Number of elements in the chanv array
|
||||
* @reserved: reserved for future use, must be set to 0
|
||||
* @chanv: channel ID and value array
|
||||
*/
|
||||
struct sof_ipc4_control_msg_payload {
|
||||
uint16_t id;
|
||||
uint16_t num_elems;
|
||||
uint32_t reserved[4];
|
||||
DECLARE_FLEX_ARRAY(struct sof_ipc4_ctrl_value_chan, chanv);
|
||||
} __packed;
|
||||
|
||||
/**
|
||||
* struct sof_ipc4_gain_data - IPC gain blob
|
||||
* @channels: Channels
|
||||
|
Loading…
x
Reference in New Issue
Block a user