On Fri, 2022-03-04 at 15:57 +0100, Cezary Rojewski wrote:
Declare structures and constants for all modules being part of basefw binary. These are used in streaming operations to communicate the needs of software to firmware side.
While adding module types, append handler for SET_SINK_FORMAT runtime for COPIER module which allows for configuration of output pin other than the default one (0).
Signed-off-by: Amadeusz Sławiński < amadeuszx.slawinski@linux.intel.com> Signed-off-by: Cezary Rojewski cezary.rojewski@intel.com
sound/soc/intel/avs/messages.c | 17 +++ sound/soc/intel/avs/messages.h | 252 +++++++++++++++++++++++++++++++++ 2 files changed, 269 insertions(+)
diff --git a/sound/soc/intel/avs/messages.c b/sound/soc/intel/avs/messages.c index 7a2a7206df4b..44566705e56c 100644 --- a/sound/soc/intel/avs/messages.c +++ b/sound/soc/intel/avs/messages.c @@ -678,3 +678,20 @@ int avs_ipc_get_modules_info(struct avs_dev *adev, struct avs_mods_info **info) *info = (struct avs_mods_info *)payload; return 0; }
+int avs_ipc_copier_set_sink_format(struct avs_dev *adev, u16 module_id,
u8 instance_id, u32 sink_id,
const struct avs_audio_format
*src_fmt,
const struct avs_audio_format
*sink_fmt) +{
- struct avs_copier_sink_format cpr_fmt;
- cpr_fmt.sink_id = sink_id;
- /* Firmware expects driver to resend copier's input format. */
- cpr_fmt.src_fmt = *src_fmt;
- cpr_fmt.sink_fmt = *sink_fmt;
- return avs_ipc_set_large_config(adev, module_id, instance_id,
AVS_COPIER_SET_SINK_FORMAT,
(u8 *)&cpr_fmt,
sizeof(cpr_fmt)); +} diff --git a/sound/soc/intel/avs/messages.h b/sound/soc/intel/avs/messages.h index 67ba0a6347a1..966139e9663d 100644 --- a/sound/soc/intel/avs/messages.h +++ b/sound/soc/intel/avs/messages.h @@ -498,4 +498,256 @@ static inline bool avs_module_entry_is_loaded(struct avs_module_entry *mentry)
int avs_ipc_get_modules_info(struct avs_dev *adev, struct avs_mods_info **info);
+/* Module configuration */
+#define AVS_MIXIN_MOD_UUID \
- GUID_INIT(0x39656EB2, 0x3B71, 0x4049, 0x8D, 0x3F, 0xF9, 0x2C,
0xD5, 0xC4, 0x3C, 0x09)
+#define AVS_MIXOUT_MOD_UUID \
- GUID_INIT(0x3C56505A, 0x24D7, 0x418F, 0xBD, 0xDC, 0xC1, 0xF5,
0xA3, 0xAC, 0x2A, 0xE0)
+#define AVS_COPIER_MOD_UUID \
- GUID_INIT(0x9BA00C83, 0xCA12, 0x4A83, 0x94, 0x3C, 0x1F, 0xA2,
0xE8, 0x2F, 0x9D, 0xDA)
+#define AVS_KPBUFF_MOD_UUID \
- GUID_INIT(0xA8A0CB32, 0x4A77, 0x4DB1, 0x85, 0xC7, 0x53, 0xD7,
0xEE, 0x07, 0xBC, 0xE6)
+#define AVS_MICSEL_MOD_UUID \
- GUID_INIT(0x32FE92C1, 0x1E17, 0x4FC2, 0x97, 0x58, 0xC7, 0xF3,
0x54, 0x2E, 0x98, 0x0A)
+#define AVS_MUX_MOD_UUID \
- GUID_INIT(0x64CE6E35, 0x857A, 0x4878, 0xAC, 0xE8, 0xE2, 0xA2,
0xF4, 0x2e, 0x30, 0x69)
+#define AVS_UPDWMIX_MOD_UUID \
- GUID_INIT(0x42F8060C, 0x832F, 0x4DBF, 0xB2, 0x47, 0x51, 0xE9,
0x61, 0x99, 0x7b, 0x35)
+#define AVS_SRCINTC_MOD_UUID \
- GUID_INIT(0xE61BB28D, 0x149A, 0x4C1F, 0xB7, 0x09, 0x46, 0x82,
0x3E, 0xF5, 0xF5, 0xAE)
+#define AVS_PROBE_MOD_UUID \
- GUID_INIT(0x7CAD0808, 0xAB10, 0xCD23, 0xEF, 0x45, 0x12, 0xAB,
0x34, 0xCD, 0x56, 0xEF)
+#define AVS_AEC_MOD_UUID \
- GUID_INIT(0x46CB87FB, 0xD2C9, 0x4970, 0x96, 0xD2, 0x6D, 0x7E,
0x61, 0x4B, 0xB6, 0x05)
+#define AVS_ASRC_MOD_UUID \
- GUID_INIT(0x66B4402D, 0xB468, 0x42F2, 0x81, 0xA7, 0xB3, 0x71,
0x21, 0x86, 0x3D, 0xD4)
+#define AVS_INTELWOV_MOD_UUID \
- GUID_INIT(0xEC774FA9, 0x28D3, 0x424A, 0x90, 0xE4, 0x69, 0xF9,
0x84, 0xF1, 0xEE, 0xB7)
Why do you need to hard-code this? DOes the fw config info that you retrieve using get_large_config or even the FW manifest have it already? Thanks,Ranjani