sound/soc/intel/avs/topology.h
Source file repositories/reference/linux-study-clean/sound/soc/intel/avs/topology.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/intel/avs/topology.h- Extension
.h- Size
- 4881 bytes
- Lines
- 239
- Domain
- Driver Families
- Bucket
- sound/soc
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/list.hmessages.h
Detected Declarations
struct snd_soc_componentstruct avs_tplgstruct avs_tplg_librarystruct avs_tplg_modcfg_basestruct avs_tplg_pin_formatstruct avs_tplg_modcfg_extstruct avs_tplg_pplcfgstruct avs_tplg_bindingstruct avs_tplg_path_template_idstruct avs_tplg_path_templatestruct avs_tplg_init_configstruct avs_tplg_nhlt_configstruct avs_tplg_pathstruct avs_tplg_pipelinestruct avs_tplg_moduleenum avs_tplg_trigger
Annotated Snippet
struct avs_tplg {
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
u32 version;
struct snd_soc_component *comp;
struct avs_tplg_library *libs;
u32 num_libs;
struct avs_audio_format *fmts;
u32 num_fmts;
struct avs_tplg_modcfg_base *modcfgs_base;
u32 num_modcfgs_base;
struct avs_tplg_modcfg_ext *modcfgs_ext;
u32 num_modcfgs_ext;
struct avs_tplg_pplcfg *pplcfgs;
u32 num_pplcfgs;
struct avs_tplg_binding *bindings;
u32 num_bindings;
struct avs_tplg_path_template *condpath_tmpls;
u32 num_condpath_tmpls;
struct avs_tplg_init_config *init_configs;
u32 num_init_configs;
struct avs_tplg_nhlt_config *nhlt_configs;
u32 num_nhlt_configs;
struct list_head path_tmpl_list;
};
struct avs_tplg_library {
char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
};
/* Matches header of struct avs_mod_cfg_base. */
struct avs_tplg_modcfg_base {
u32 cpc;
u32 ibs;
u32 obs;
u32 is_pages;
};
struct avs_tplg_pin_format {
u32 pin_index;
u32 iobs;
struct avs_audio_format *fmt;
};
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;
} copier;
struct {
struct avs_audio_format *ref_fmt;
struct avs_audio_format *out_fmt;
u32 wake_tick_period;
union avs_virtual_index vindex;
u32 dma_type;
u32 dma_buffer_size;
struct avs_audio_format *blob_fmt; /* optional override */
} whm;
struct {
u32 out_channel_config;
u32 coefficients_select;
s32 coefficients[AVS_COEFF_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;
Annotation
- Immediate include surface: `linux/list.h`, `messages.h`.
- Detected declarations: `struct snd_soc_component`, `struct avs_tplg`, `struct avs_tplg_library`, `struct avs_tplg_modcfg_base`, `struct avs_tplg_pin_format`, `struct avs_tplg_modcfg_ext`, `struct avs_tplg_pplcfg`, `struct avs_tplg_binding`, `struct avs_tplg_path_template_id`, `struct avs_tplg_path_template`.
- Atlas domain: Driver Families / sound/soc.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.