[PATCH v3 12/17] ASoC: Intel: avs: Declare module configuration types

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Fri Mar 4 17:43:14 CET 2022


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 at linux.intel.com>
> Signed-off-by: Cezary Rojewski <cezary.rojewski at 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



More information about the Alsa-devel mailing list