sound/soc/intel/atom/sst-mfld-dsp.h
Source file repositories/reference/linux-study-clean/sound/soc/intel/atom/sst-mfld-dsp.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/intel/atom/sst-mfld-dsp.h- Extension
.h- Size
- 14631 bytes
- Lines
- 526
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct ipc_dsp_hdrstruct sst_fw_build_infostruct snd_sst_fw_versionstruct ipc_header_fw_initstruct snd_sst_tstampstruct snd_sst_str_typestruct module_infostruct lib_slot_infostruct snd_ppp_mixer_paramsstruct snd_sst_lib_downloadstruct snd_sst_lib_download_infostruct snd_pcm_paramsstruct snd_mp3_paramsstruct snd_aac_paramsstruct snd_wma_paramsstruct sst_address_infostruct snd_sst_alloc_params_extstruct snd_sst_stream_paramsstruct snd_sst_paramsstruct snd_sst_alloc_mrfldstruct snd_sst_alloc_paramsstruct snd_sst_alloc_responsestruct snd_sst_drop_responsestruct snd_sst_async_msgstruct snd_sst_async_err_msgstruct snd_sst_volstruct snd_sst_gain_v2struct snd_sst_mutestruct snd_sst_runtime_paramsstruct snd_sst_control_routingstruct ipc_poststruct snd_sst_ctxt_paramsstruct snd_sst_lpe_log_paramsstruct snd_sst_bytes_v2struct snd_sst_vtsv_infoenum ackDataenum ipc_ia_msg_idenum sst_codec_typesenum stream_typeenum sst_error_codesenum stream_param_typeenum snd_sst_bytes_type
Annotated Snippet
struct ipc_dsp_hdr {
u16 mod_index_id:8; /*!< DSP Command ID specific to tasks */
u16 pipe_id:8; /*!< instance of the module in the pipeline */
u16 mod_id; /*!< Pipe_id */
u16 cmd_id; /*!< Module ID = lpe_algo_types_t */
u16 length; /*!< Length of the payload only */
} __packed;
union ipc_header_high {
struct {
u32 msg_id:8; /* Message ID - Max 256 Message Types */
u32 task_id:4; /* Task ID associated with this comand */
u32 drv_id:4; /* Identifier for the driver to track*/
u32 rsvd1:8; /* Reserved */
u32 result:4; /* Reserved */
u32 res_rqd:1; /* Response rqd */
u32 large:1; /* Large Message if large = 1 */
u32 done:1; /* bit 30 - Done bit */
u32 busy:1; /* bit 31 - busy bit*/
} part;
u32 full;
} __packed;
/* IPC header */
union ipc_header_mrfld {
struct {
u32 header_low_payload;
union ipc_header_high header_high;
} p;
u64 full;
} __packed;
/* CAUTION NOTE: All IPC message body must be multiple of 32 bits.*/
/* IPC Header */
union ipc_header {
struct {
u32 msg_id:8; /* Message ID - Max 256 Message Types */
u32 str_id:5;
u32 large:1; /* Large Message if large = 1 */
u32 reserved:2; /* Reserved for future use */
u32 data:14; /* Ack/Info for msg, size of msg in Mailbox */
u32 done:1; /* bit 30 */
u32 busy:1; /* bit 31 */
} part;
u32 full;
} __packed;
/* Firmware build info */
struct sst_fw_build_info {
unsigned char date[16]; /* Firmware build date */
unsigned char time[16]; /* Firmware build time */
} __packed;
/* Firmware Version info */
struct snd_sst_fw_version {
u8 build; /* build number*/
u8 minor; /* minor number*/
u8 major; /* major number*/
u8 type; /* build type */
};
struct ipc_header_fw_init {
struct snd_sst_fw_version fw_version;/* Firmware version details */
struct sst_fw_build_info build_info;
u16 result; /* Fw init result */
u8 module_id; /* Module ID in case of error */
u8 debug_info; /* Debug info from Module ID in case of fail */
} __packed;
struct snd_sst_tstamp {
u64 ring_buffer_counter; /* PB/CP: Bytes copied from/to DDR. */
u64 hardware_counter; /* PB/CP: Bytes DMAed to/from SSP. */
u64 frames_decoded;
u64 bytes_decoded;
u64 bytes_copied;
u32 sampling_frequency;
u32 channel_peak[8];
} __packed;
/* Stream type params structure for Alloc stream */
struct snd_sst_str_type {
u8 codec_type; /* Codec type */
u8 str_type; /* 1 = voice 2 = music */
u8 operation; /* Playback or Capture */
u8 protected_str; /* 0=Non DRM, 1=DRM */
u8 time_slots;
u8 reserved; /* Reserved */
u16 result; /* Result used for acknowledgment */
} __packed;
/* Library info structure */
Annotation
- Detected declarations: `struct ipc_dsp_hdr`, `struct sst_fw_build_info`, `struct snd_sst_fw_version`, `struct ipc_header_fw_init`, `struct snd_sst_tstamp`, `struct snd_sst_str_type`, `struct module_info`, `struct lib_slot_info`, `struct snd_ppp_mixer_params`, `struct snd_sst_lib_download`.
- 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.