sound/soc/intel/avs/messages.c
Source file repositories/reference/linux-study-clean/sound/soc/intel/avs/messages.c
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/intel/avs/messages.c- Extension
.c- Size
- 24356 bytes
- Lines
- 905
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/slab.havs.hmessages.h
Detected Declarations
function avs_ipc_set_boot_configfunction avs_ipc_load_modulesfunction avs_ipc_unload_modulesfunction avs_ipc_load_libraryfunction avs_ipc_create_pipelinefunction avs_ipc_delete_pipelinefunction avs_ipc_set_pipeline_statefunction avs_ipc_get_pipeline_statefunction avs_ipc_init_instancefunction avs_ipc_delete_instancefunction avs_ipc_bindfunction avs_ipc_unbindfunction __avs_ipc_set_large_configfunction avs_ipc_set_large_configfunction avs_ipc_get_large_configfunction avs_ipc_set_dxfunction avs_ipc_set_d0ixfunction avs_ipc_get_fw_configfunction avs_ipc_set_fw_configfunction avs_ipc_get_hw_configfunction avs_ipc_get_modules_infofunction avs_ipc_copier_set_sink_formatfunction avs_ipc_peakvol_get_volumefunction avs_ipc_peakvol_set_volumefunction avs_ipc_peakvol_set_volumesfunction avs_ipc_peakvol_get_mutefunction avs_ipc_peakvol_set_mutefunction avs_ipc_peakvol_set_mutesfunction avs_ipc_set_enable_logsfunction avs_ipc_set_system_timefunction avs_ipc_probe_get_dmafunction avs_ipc_probe_attach_dmafunction avs_ipc_probe_detach_dmafunction avs_ipc_probe_get_pointsfunction avs_ipc_probe_connect_pointsfunction avs_ipc_probe_disconnect_points
Annotated Snippet
switch (tlv->type) {
case AVS_FW_CFG_FW_VERSION:
memcpy(&cfg->fw_version, tlv->value, sizeof(cfg->fw_version));
break;
case AVS_FW_CFG_MEMORY_RECLAIMED:
cfg->memory_reclaimed = *tlv->value;
break;
case AVS_FW_CFG_SLOW_CLOCK_FREQ_HZ:
cfg->slow_clock_freq_hz = *tlv->value;
break;
case AVS_FW_CFG_FAST_CLOCK_FREQ_HZ:
cfg->fast_clock_freq_hz = *tlv->value;
break;
case AVS_FW_CFG_ALH_SUPPORT_LEVEL:
cfg->alh_support = *tlv->value;
break;
case AVS_FW_CFG_IPC_DL_MAILBOX_BYTES:
cfg->ipc_dl_mailbox_bytes = *tlv->value;
break;
case AVS_FW_CFG_IPC_UL_MAILBOX_BYTES:
cfg->ipc_ul_mailbox_bytes = *tlv->value;
break;
case AVS_FW_CFG_TRACE_LOG_BYTES:
cfg->trace_log_bytes = *tlv->value;
break;
case AVS_FW_CFG_MAX_PPL_COUNT:
cfg->max_ppl_count = *tlv->value;
break;
case AVS_FW_CFG_MAX_ASTATE_COUNT:
cfg->max_astate_count = *tlv->value;
break;
case AVS_FW_CFG_MAX_MODULE_PIN_COUNT:
cfg->max_module_pin_count = *tlv->value;
break;
case AVS_FW_CFG_MODULES_COUNT:
cfg->modules_count = *tlv->value;
break;
case AVS_FW_CFG_MAX_MOD_INST_COUNT:
cfg->max_mod_inst_count = *tlv->value;
break;
case AVS_FW_CFG_MAX_LL_TASKS_PER_PRI_COUNT:
cfg->max_ll_tasks_per_pri_count = *tlv->value;
break;
case AVS_FW_CFG_LL_PRI_COUNT:
cfg->ll_pri_count = *tlv->value;
break;
case AVS_FW_CFG_MAX_DP_TASKS_COUNT:
cfg->max_dp_tasks_count = *tlv->value;
break;
case AVS_FW_CFG_MAX_LIBS_COUNT:
cfg->max_libs_count = *tlv->value;
break;
case AVS_FW_CFG_XTAL_FREQ_HZ:
cfg->xtal_freq_hz = *tlv->value;
break;
case AVS_FW_CFG_POWER_GATING_POLICY:
cfg->power_gating_policy = *tlv->value;
break;
/* Known but not useful to us. */
case AVS_FW_CFG_DMA_BUFFER_CONFIG:
case AVS_FW_CFG_SCHEDULER_CONFIG:
case AVS_FW_CFG_CLOCKS_CONFIG:
case AVS_FW_CFG_RESERVED:
break;
default:
dev_info(adev->dev, "Unrecognized fw param: %d\n", tlv->type);
break;
}
offset += sizeof(*tlv) + tlv->length;
Annotation
- Immediate include surface: `linux/slab.h`, `avs.h`, `messages.h`.
- Detected declarations: `function avs_ipc_set_boot_config`, `function avs_ipc_load_modules`, `function avs_ipc_unload_modules`, `function avs_ipc_load_library`, `function avs_ipc_create_pipeline`, `function avs_ipc_delete_pipeline`, `function avs_ipc_set_pipeline_state`, `function avs_ipc_get_pipeline_state`, `function avs_ipc_init_instance`, `function avs_ipc_delete_instance`.
- 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.