include/sound/intel-nhlt.h
Source file repositories/reference/linux-study-clean/include/sound/intel-nhlt.h
File Facts
- System
- Linux kernel
- Corpus path
include/sound/intel-nhlt.h- Extension
.h- Size
- 4108 bytes
- Lines
- 200
- Domain
- Driver Families
- Bucket
- include/sound
- 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/acpi.h
Detected Declarations
struct wav_fmtstruct wav_fmt_extstruct nhlt_specific_cfgstruct nhlt_fmt_cfgstruct nhlt_fmtstruct nhlt_endpointstruct nhlt_acpi_tablestruct nhlt_resource_descstruct nhlt_device_specific_configstruct nhlt_dmic_array_configstruct nhlt_vendor_dmic_array_configenum nhlt_link_typeenum nhlt_device_typefunction intel_nhlt_freefunction intel_nhlt_has_endpoint_typefunction intel_nhlt_ssp_endpoint_maskfunction intel_nhlt_ssp_mclk_maskfunction intel_nhlt_get_endpoint_blobfunction intel_nhlt_ssp_device_type
Annotated Snippet
struct wav_fmt {
u16 fmt_tag;
u16 channels;
u32 samples_per_sec;
u32 avg_bytes_per_sec;
u16 block_align;
u16 bits_per_sample;
u16 cb_size;
} __packed;
struct wav_fmt_ext {
struct wav_fmt fmt;
union samples {
u16 valid_bits_per_sample;
u16 samples_per_block;
u16 reserved;
} sample;
u32 channel_mask;
u8 sub_fmt[16];
} __packed;
struct nhlt_specific_cfg {
u32 size;
u8 caps[];
} __packed;
struct nhlt_fmt_cfg {
struct wav_fmt_ext fmt_ext;
struct nhlt_specific_cfg config;
} __packed;
struct nhlt_fmt {
u8 fmt_count;
struct nhlt_fmt_cfg fmt_config[];
} __packed;
struct nhlt_endpoint {
u32 length;
u8 linktype;
u8 instance_id;
u16 vendor_id;
u16 device_id;
u16 revision_id;
u32 subsystem_id;
u8 device_type;
u8 direction;
u8 virtual_bus_id;
struct nhlt_specific_cfg config;
} __packed;
struct nhlt_acpi_table {
struct acpi_table_header header;
u8 endpoint_count;
struct nhlt_endpoint desc[];
} __packed;
struct nhlt_resource_desc {
u32 extra;
u16 flags;
u64 addr_spc_gra;
u64 min_addr;
u64 max_addr;
u64 addr_trans_offset;
u64 length;
} __packed;
#define MIC_ARRAY_2CH 2
#define MIC_ARRAY_4CH 4
struct nhlt_device_specific_config {
u8 virtual_slot;
u8 config_type;
} __packed;
struct nhlt_dmic_array_config {
struct nhlt_device_specific_config device_config;
u8 array_type;
} __packed;
struct nhlt_vendor_dmic_array_config {
struct nhlt_dmic_array_config dmic_config;
u8 nb_mics;
/* TODO add vendor mic config */
} __packed;
enum {
NHLT_CONFIG_TYPE_GENERIC = 0,
NHLT_CONFIG_TYPE_MIC_ARRAY = 1
};
Annotation
- Immediate include surface: `linux/acpi.h`.
- Detected declarations: `struct wav_fmt`, `struct wav_fmt_ext`, `struct nhlt_specific_cfg`, `struct nhlt_fmt_cfg`, `struct nhlt_fmt`, `struct nhlt_endpoint`, `struct nhlt_acpi_table`, `struct nhlt_resource_desc`, `struct nhlt_device_specific_config`, `struct nhlt_dmic_array_config`.
- Atlas domain: Driver Families / include/sound.
- 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.