sound/soc/sof/ipc4-fw-reg.h
Source file repositories/reference/linux-study-clean/sound/soc/sof/ipc4-fw-reg.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/sof/ipc4-fw-reg.h- Extension
.h- Size
- 5121 bytes
- Lines
- 156
- 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 sof_ipc4_pipeline_registersstruct sof_ipc4_peak_volume_regsstruct sof_ipc4_llp_readingstruct sof_ipc4_llp_reading_extendedstruct sof_ipc4_llp_reading_slotstruct sof_ipc4_fw_registers
Annotated Snippet
struct sof_ipc4_pipeline_registers {
u64 stream_start_offset;
u64 stream_end_offset;
} __packed __aligned(4);
#define SOF_IPC4_PV_MAX_SUPPORTED_CHANNELS 8
/**
* struct sof_ipc4_peak_volume_regs - Volume information in fw
* @peak_meter: Peak volume value in fw
* @current_volume: Current volume value in fw
* @target_volume: Target volume value in fw
*/
struct sof_ipc4_peak_volume_regs {
u32 peak_meter[SOF_IPC4_PV_MAX_SUPPORTED_CHANNELS];
u32 current_volume[SOF_IPC4_PV_MAX_SUPPORTED_CHANNELS];
u32 target_volume[SOF_IPC4_PV_MAX_SUPPORTED_CHANNELS];
} __packed __aligned(4);
/**
* struct sof_ipc4_llp_reading - Llp information in fw
* @llp_l: Lower part of 64-bit LLP
* @llp_u: Upper part of 64-bit LLP
* @wclk_l: Lower part of 64-bit Wallclock
* @wclk_u: Upper part of 64-bit Wallclock
*/
struct sof_ipc4_llp_reading {
u32 llp_l;
u32 llp_u;
u32 wclk_l;
u32 wclk_u;
} __packed __aligned(4);
/**
* struct of sof_ipc4_llp_reading_extended - Extended llp info
* @llp_reading: Llp information in memory window
* @tpd_low: Total processed data (low part)
* @tpd_high: Total processed data (high part)
*/
struct sof_ipc4_llp_reading_extended {
struct sof_ipc4_llp_reading llp_reading;
u32 tpd_low;
u32 tpd_high;
} __packed __aligned(4);
/**
* struct sof_ipc4_llp_reading_slot - Llp slot information in memory window
* @node_id: Dai gateway node id
* @reading: Llp information in memory window
*/
struct sof_ipc4_llp_reading_slot {
u32 node_id;
struct sof_ipc4_llp_reading reading;
} __packed __aligned(4);
/* ROM information */
#define SOF_IPC4_FW_FUSE_VALUE_MASK GENMASK(7, 0)
#define SOF_IPC4_FW_LOAD_METHOD_MASK BIT(8)
#define SOF_IPC4_FW_DOWNLINK_IPC_USE_DMA_MASK BIT(9)
#define SOF_IPC4_FW_LOAD_METHOD_REV_MASK GENMASK(11, 10)
#define SOF_IPC4_FW_REVISION_MIN_MASK GENMASK(15, 12)
#define SOF_IPC4_FW_REVISION_MAJ_MASK GENMASK(19, 16)
#define SOF_IPC4_FW_VERSION_MIN_MASK GENMASK(23, 20)
#define SOF_IPC4_FW_VERSION_MAJ_MASK GENMASK(27, 24)
/* Number of dsp core supported in FW Regs. */
#define SOF_IPC4_MAX_SUPPORTED_ADSP_CORES 8
/* Number of host pipeline registers slots in FW Regs. */
#define SOF_IPC4_MAX_PIPELINE_REG_SLOTS 16
/* Number of PeakVol registers slots in FW Regs. */
#define SOF_IPC4_MAX_PEAK_VOL_REG_SLOTS 16
/* Number of GPDMA LLP Reading slots in FW Regs. */
#define SOF_IPC4_MAX_LLP_GPDMA_READING_SLOTS 24
/* Number of Aggregated SNDW Reading slots in FW Regs. */
#define SOF_IPC4_MAX_LLP_SNDW_READING_SLOTS 15
/* Current ABI version of the Fw registers layout. */
#define SOF_IPC4_FW_REGS_ABI_VER 1
/**
* struct sof_ipc4_fw_registers - FW Registers exposes additional
* DSP / FW state information to the driver
* @fw_status: Current ROM / FW status
* @lec: Last ROM / FW error code
* @fps: Current DSP clock status
* @lnec: Last Native Error Code(from external library)
Annotation
- Detected declarations: `struct sof_ipc4_pipeline_registers`, `struct sof_ipc4_peak_volume_regs`, `struct sof_ipc4_llp_reading`, `struct sof_ipc4_llp_reading_extended`, `struct sof_ipc4_llp_reading_slot`, `struct sof_ipc4_fw_registers`.
- 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.