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@xxxxxxxxxxxxxxx> > Signed-off-by: Cezary Rojewski <cezary.rojewski@xxxxxxxxx> > --- > 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