sound/soc/qcom/qdsp6/audioreach.h

Source file repositories/reference/linux-study-clean/sound/soc/qcom/qdsp6/audioreach.h

File Facts

System
Linux kernel
Corpus path
sound/soc/qcom/qdsp6/audioreach.h
Extension
.h
Size
24882 bytes
Lines
956
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct event_cfg_sh_mem_pull_push_mode_watermark_t {
	uint32_t num_water_mark_levels;
	uint32_t level[];
} __packed;

/**
 * struct apm_module_register_events - Register or unregister module events
 * @module_instance_id: Module instance identifier.
 * @event_id: Module event identifier.
 * @is_register: 1 to register the event, 0 to unregister it.
 * @error_code: Error code for out-of-band command mode.
 * @event_config_payload_size: Event configuration payload size in bytes.
 * @reserved: Reserved for alignment; must be zero.
 */
struct apm_module_register_events {
	uint32_t module_instance_id;
	uint32_t event_id;
	uint32_t is_register;
	uint32_t error_code;
	uint32_t event_config_payload_size;
	uint32_t reserved;
} __packed;

/**
 * struct apm_module_event - Module event descriptor
 * @event_id: Module event identifier.
 * @event_payload_size: Event payload size in bytes.
 */
struct apm_module_event {
	uint32_t event_id;
	uint32_t event_payload_size;
} __packed;

#define APM_MEMORY_MAP_SHMEM8_4K_POOL		3

struct apm_cmd_shared_mem_map_regions {
	uint16_t mem_pool_id;
	uint16_t num_regions;
	uint32_t property_flag;
} __packed;

struct apm_shared_map_region_payload {
	uint32_t shm_addr_lsw;
	uint32_t shm_addr_msw;
	uint32_t mem_size_bytes;
} __packed;

struct apm_cmd_shared_mem_unmap_regions {
	uint32_t mem_map_handle;
} __packed;

struct apm_cmd_rsp_shared_mem_map_regions {
	uint32_t mem_map_handle;
} __packed;

/* APM module */
#define APM_PARAM_ID_SUB_GRAPH_LIST		0x08001005

#define APM_PARAM_ID_MODULE_LIST		0x08001002

struct apm_param_id_modules_list {
	uint32_t num_modules_list;
} __packed;

#define APM_PARAM_ID_MODULE_PROP		0x08001003

struct apm_param_id_module_prop {
	uint32_t num_modules_prop_cfg;
} __packed;

struct apm_module_prop_cfg {
	uint32_t instance_id;
	uint32_t num_props;
} __packed;

#define APM_PARAM_ID_MODULE_CONN		0x08001004

struct apm_param_id_module_conn {
	uint32_t num_connections;
} __packed;

struct apm_module_conn_obj {
	uint32_t src_mod_inst_id;
	uint32_t src_mod_op_port_id;
	uint32_t dst_mod_inst_id;
	uint32_t dst_mod_ip_port_id;
} __packed;

#define APM_PARAM_ID_GAIN			0x08001006

Annotation

Implementation Notes