[RFC 03/13] ASoC: Intel: avs: Parse module-extension tuples
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Fri Feb 25 18:24:09 CET 2022
> +struct avs_tplg_modcfg_ext {
> + guid_t type;
> +
> + union {
> + struct {
> + u16 num_input_pins;
> + u16 num_output_pins;
> + struct avs_tplg_pin_format *pin_fmts;
> + } generic;
> + struct {
> + struct avs_audio_format *out_fmt;
> + struct avs_audio_format *blob_fmt; /* optional override */
> + u32 feature_mask;
> + union avs_virtual_index vindex;
> + u32 dma_type;
> + u32 dma_buffer_size;
> + u32 config_length;
> + /* config_data part of priv data */
> + } copier;
> + struct {
> + u32 out_channel_config;
> + u32 coefficients_select;
> + s32 coefficients[AVS_CHANNELS_MAX];
> + u32 channel_map;
> + } updown_mix;
> + struct {
> + u32 out_freq;
> + } src;
> + struct {
> + u32 out_freq;
> + u8 mode;
> + u8 disable_jitter_buffer;
> + } asrc;
> + struct {
> + u32 cpc_lp_mode;
> + } wov;
> + struct {
> + struct avs_audio_format *ref_fmt;
> + struct avs_audio_format *out_fmt;
> + u32 cpc_lp_mode;
> + } aec;
> + struct {
> + struct avs_audio_format *ref_fmt;
> + struct avs_audio_format *out_fmt;
> + } mux;
> + struct {
> + struct avs_audio_format *out_fmt;
> + } micsel;
> + };
> +};
I am struggling to reconcile the notion of 'extension' with a fixed
structure that deals with Intel-specific modules.
How would a 3rd party add their own modules and expose parameters/tokens
through the topology?
More information about the Alsa-devel
mailing list