1 /* SPDX-License-Identifier: GPL-2.0 */
3 #ifndef __AUDIOREACH_H__
4 #define __AUDIOREACH_H__
5 #include <linux/types.h>
6 #include <linux/soc/qcom/apr.h>
12 #define MODULE_ID_WR_SHARED_MEM_EP 0x07001000
13 #define MODULE_ID_RD_SHARED_MEM_EP 0x07001001
14 #define MODULE_ID_GAIN 0x07001002
15 #define MODULE_ID_PCM_CNV 0x07001003
16 #define MODULE_ID_PCM_ENC 0x07001004
17 #define MODULE_ID_PCM_DEC 0x07001005
18 #define MODULE_ID_PLACEHOLDER_ENCODER 0x07001008
19 #define MODULE_ID_PLACEHOLDER_DECODER 0x07001009
20 #define MODULE_ID_SAL 0x07001010
21 #define MODULE_ID_MFC 0x07001015
22 #define MODULE_ID_CODEC_DMA_SINK 0x07001023
23 #define MODULE_ID_CODEC_DMA_SOURCE 0x07001024
24 #define MODULE_ID_I2S_SINK 0x0700100A
25 #define MODULE_ID_I2S_SOURCE 0x0700100B
26 #define MODULE_ID_DATA_LOGGING 0x0700101A
27 #define MODULE_ID_AAC_DEC 0x0700101F
28 #define MODULE_ID_FLAC_DEC 0x0700102F
29 #define MODULE_ID_MP3_DECODE 0x0700103B
30 #define MODULE_ID_GAPLESS 0x0700104D
31 #define MODULE_ID_DISPLAY_PORT_SINK 0x07001069
33 #define APM_CMD_GET_SPF_STATE 0x01001021
34 #define APM_CMD_RSP_GET_SPF_STATE 0x02001007
36 #define APM_MODULE_INSTANCE_ID 0x00000001
37 #define PRM_MODULE_INSTANCE_ID 0x00000002
38 #define AMDB_MODULE_INSTANCE_ID 0x00000003
39 #define VCPM_MODULE_INSTANCE_ID 0x00000004
40 #define AR_MODULE_INSTANCE_ID_START 0x00006000
41 #define AR_MODULE_INSTANCE_ID_END 0x00007000
42 #define AR_MODULE_DYNAMIC_INSTANCE_ID_START 0x00007000
43 #define AR_MODULE_DYNAMIC_INSTANCE_ID_END 0x00008000
44 #define AR_CONT_INSTANCE_ID_START 0x00005000
45 #define AR_CONT_INSTANCE_ID_END 0x00006000
46 #define AR_SG_INSTANCE_ID_START 0x00004000
48 #define APM_CMD_GRAPH_OPEN 0x01001000
49 #define APM_CMD_GRAPH_PREPARE 0x01001001
50 #define APM_CMD_GRAPH_START 0x01001002
51 #define APM_CMD_GRAPH_STOP 0x01001003
52 #define APM_CMD_GRAPH_CLOSE 0x01001004
53 #define APM_CMD_GRAPH_FLUSH 0x01001005
54 #define APM_CMD_SET_CFG 0x01001006
55 #define APM_CMD_GET_CFG 0x01001007
56 #define APM_CMD_SHARED_MEM_MAP_REGIONS 0x0100100C
57 #define APM_CMD_SHARED_MEM_UNMAP_REGIONS 0x0100100D
58 #define APM_CMD_RSP_SHARED_MEM_MAP_REGIONS 0x02001001
59 #define APM_CMD_RSP_GET_CFG 0x02001000
60 #define APM_CMD_CLOSE_ALL 0x01001013
61 #define APM_CMD_REGISTER_SHARED_CFG 0x0100100A
63 #define APM_MEMORY_MAP_SHMEM8_4K_POOL 3
65 struct apm_cmd_shared_mem_map_regions
{
68 uint32_t property_flag
;
71 struct apm_shared_map_region_payload
{
72 uint32_t shm_addr_lsw
;
73 uint32_t shm_addr_msw
;
74 uint32_t mem_size_bytes
;
77 struct apm_cmd_shared_mem_unmap_regions
{
78 uint32_t mem_map_handle
;
81 struct apm_cmd_rsp_shared_mem_map_regions
{
82 uint32_t mem_map_handle
;
86 #define APM_PARAM_ID_SUB_GRAPH_LIST 0x08001005
88 #define APM_PARAM_ID_MODULE_LIST 0x08001002
90 struct apm_param_id_modules_list
{
91 uint32_t num_modules_list
;
94 #define APM_PARAM_ID_MODULE_PROP 0x08001003
96 struct apm_param_id_module_prop
{
97 uint32_t num_modules_prop_cfg
;
100 struct apm_module_prop_cfg
{
101 uint32_t instance_id
;
105 #define APM_PARAM_ID_MODULE_CONN 0x08001004
107 struct apm_param_id_module_conn
{
108 uint32_t num_connections
;
111 struct apm_module_conn_obj
{
112 uint32_t src_mod_inst_id
;
113 uint32_t src_mod_op_port_id
;
114 uint32_t dst_mod_inst_id
;
115 uint32_t dst_mod_ip_port_id
;
118 #define APM_PARAM_ID_GAIN 0x08001006
120 struct param_id_gain_cfg
{
125 #define PARAM_ID_PCM_OUTPUT_FORMAT_CFG 0x08001008
127 struct param_id_pcm_output_format_cfg
{
128 uint32_t data_format
;
130 uint32_t payload_size
;
133 struct payload_pcm_output_format_cfg
{
136 uint16_t bits_per_sample
;
139 uint16_t interleaved
;
141 uint16_t num_channels
;
142 uint8_t channel_mapping
[];
145 #define PARAM_ID_ENC_BITRATE 0x08001052
147 struct param_id_enc_bitrate_param
{
151 #define DATA_FORMAT_FIXED_POINT 1
152 #define DATA_FORMAT_GENERIC_COMPRESSED 5
153 #define DATA_FORMAT_RAW_COMPRESSED 6
154 #define PCM_LSB_ALIGNED 1
155 #define PCM_MSB_ALIGNED 2
156 #define PCM_LITTLE_ENDIAN 1
157 #define PCM_BIT_ENDIAN 2
159 #define MEDIA_FMT_ID_PCM 0x09001000
160 #define MEDIA_FMT_ID_MP3 0x09001009
161 #define SAMPLE_RATE_48K 48000
162 #define BIT_WIDTH_16 16
164 #define APM_PARAM_ID_PROP_PORT_INFO 0x08001015
166 struct apm_modules_prop_info
{
167 uint32_t max_ip_port
;
168 uint32_t max_op_port
;
171 /* Shared memory module */
172 #define DATA_CMD_WR_SH_MEM_EP_DATA_BUFFER 0x04001000
173 #define WR_SH_MEM_EP_TIMESTAMP_VALID_FLAG BIT(31)
174 #define WR_SH_MEM_EP_LAST_BUFFER_FLAG BIT(30)
175 #define WR_SH_MEM_EP_TS_CONTINUE_FLAG BIT(29)
176 #define WR_SH_MEM_EP_EOF_FLAG BIT(4)
178 struct apm_data_cmd_wr_sh_mem_ep_data_buffer
{
179 uint32_t buf_addr_lsw
;
180 uint32_t buf_addr_msw
;
181 uint32_t mem_map_handle
;
183 uint32_t timestamp_lsw
;
184 uint32_t timestamp_msw
;
188 #define DATA_CMD_WR_SH_MEM_EP_DATA_BUFFER_V2 0x0400100A
190 struct apm_data_cmd_wr_sh_mem_ep_data_buffer_v2
{
191 uint32_t buf_addr_lsw
;
192 uint32_t buf_addr_msw
;
193 uint32_t mem_map_handle
;
195 uint32_t timestamp_lsw
;
196 uint32_t timestamp_msw
;
198 uint32_t md_addr_lsw
;
199 uint32_t md_addr_msw
;
200 uint32_t md_map_handle
;
201 uint32_t md_buf_size
;
204 #define DATA_CMD_RSP_WR_SH_MEM_EP_DATA_BUFFER_DONE 0x05001000
206 struct data_cmd_rsp_wr_sh_mem_ep_data_buffer_done
{
207 uint32_t buf_addr_lsw
;
208 uint32_t buf_addr_msw
;
209 uint32_t mem_map_handle
;
214 #define DATA_CMD_RSP_WR_SH_MEM_EP_DATA_BUFFER_DONE_V2 0x05001004
216 struct data_cmd_rsp_wr_sh_mem_ep_data_buffer_done_v2
{
217 uint32_t buf_addr_lsw
;
218 uint32_t buf_addr_msw
;
219 uint32_t mem_map_handle
;
221 uint32_t md_buf_addr_lsw
;
222 uint32_t md_buf_addr_msw
;
223 uint32_t md_mem_map_handle
;
227 #define PARAM_ID_MEDIA_FORMAT 0x0800100C
228 #define DATA_CMD_WR_SH_MEM_EP_MEDIA_FORMAT 0x04001001
230 struct apm_media_format
{
231 uint32_t data_format
;
233 uint32_t payload_size
;
236 #define MEDIA_FMT_ID_FLAC 0x09001004
238 struct payload_media_fmt_flac_t
{
239 uint16_t num_channels
;
240 uint16_t sample_size
;
241 uint16_t min_blk_size
;
242 uint16_t max_blk_size
;
243 uint32_t sample_rate
;
244 uint32_t min_frame_size
;
245 uint32_t max_frame_size
;
248 #define MEDIA_FMT_ID_AAC 0x09001001
250 struct payload_media_fmt_aac_t
{
251 uint16_t aac_fmt_flag
;
252 uint16_t audio_obj_type
;
253 uint16_t num_channels
;
254 uint16_t total_size_of_PCE_bits
;
255 uint32_t sample_rate
;
258 #define DATA_CMD_WR_SH_MEM_EP_EOS 0x04001002
259 #define WR_SH_MEM_EP_EOS_POLICY_LAST 1
260 #define WR_SH_MEM_EP_EOS_POLICY_EACH 2
262 struct data_cmd_wr_sh_mem_ep_eos
{
267 #define DATA_CMD_RD_SH_MEM_EP_DATA_BUFFER 0x04001003
269 struct data_cmd_rd_sh_mem_ep_data_buffer
{
270 uint32_t buf_addr_lsw
;
271 uint32_t buf_addr_msw
;
272 uint32_t mem_map_handle
;
276 #define DATA_CMD_RSP_RD_SH_MEM_EP_DATA_BUFFER 0x05001002
278 struct data_cmd_rsp_rd_sh_mem_ep_data_buffer_done
{
280 uint32_t buf_addr_lsw
;
281 uint32_t buf_addr_msw
;
282 uint32_t mem_map_handle
;
285 uint32_t timestamp_lsw
;
286 uint32_t timestamp_msw
;
291 #define DATA_CMD_RD_SH_MEM_EP_DATA_BUFFER_V2 0x0400100B
293 struct data_cmd_rd_sh_mem_ep_data_buffer_v2
{
294 uint32_t buf_addr_lsw
;
295 uint32_t buf_addr_msw
;
296 uint32_t mem_map_handle
;
298 uint32_t md_buf_addr_lsw
;
299 uint32_t md_buf_addr_msw
;
300 uint32_t md_mem_map_handle
;
301 uint32_t md_buf_size
;
304 #define DATA_CMD_RSP_RD_SH_MEM_EP_DATA_BUFFER_V2 0x05001005
306 struct data_cmd_rsp_rd_sh_mem_ep_data_buffer_done_v2
{
308 uint32_t buf_addr_lsw
;
309 uint32_t buf_addr_msw
;
310 uint32_t mem_map_handle
;
313 uint32_t timestamp_lsw
;
314 uint32_t timestamp_msw
;
318 uint32_t md_buf_addr_lsw
;
319 uint32_t md_buf_addr_msw
;
320 uint32_t md_mem_map_handle
;
324 #define PARAM_ID_RD_SH_MEM_CFG 0x08001007
326 struct param_id_rd_sh_mem_cfg
{
327 uint32_t num_frames_per_buffer
;
328 uint32_t metadata_control_flags
;
332 #define DATA_CMD_WR_SH_MEM_EP_EOS_RENDERED 0x05001001
334 struct data_cmd_wr_sh_mem_ep_eos_rendered
{
335 uint32_t module_instance_id
;
336 uint32_t render_status
;
339 #define MODULE_ID_WR_SHARED_MEM_EP 0x07001000
341 struct apm_cmd_header
{
342 uint32_t payload_address_lsw
;
343 uint32_t payload_address_msw
;
344 uint32_t mem_map_handle
;
345 uint32_t payload_size
;
348 #define APM_CMD_HDR_SIZE sizeof(struct apm_cmd_header)
350 struct apm_module_param_data
{
351 uint32_t module_instance_id
;
357 #define APM_MODULE_PARAM_DATA_SIZE sizeof(struct apm_module_param_data)
359 struct apm_module_param_shared_data
{
364 struct apm_prop_data
{
369 /* Sub-Graph Properties */
370 #define APM_PARAM_ID_SUB_GRAPH_CONFIG 0x08001001
372 struct apm_param_id_sub_graph_cfg
{
373 uint32_t num_sub_graphs
;
376 struct apm_sub_graph_cfg
{
377 uint32_t sub_graph_id
;
378 uint32_t num_sub_graph_prop
;
381 #define APM_SUB_GRAPH_PROP_ID_PERF_MODE 0x0800100E
383 struct apm_sg_prop_id_perf_mode
{
387 #define APM_SG_PROP_ID_PERF_MODE_SIZE 4
389 #define APM_SUB_GRAPH_PROP_ID_DIRECTION 0x0800100F
391 struct apm_sg_prop_id_direction
{
395 #define APM_SG_PROP_ID_DIR_SIZE 4
397 #define APM_SUB_GRAPH_PROP_ID_SCENARIO_ID 0x08001010
398 #define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
399 #define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
400 #define APM_SUB_GRAPH_SID_AUDIO_VOICE_CALL 0x3
402 struct apm_sg_prop_id_scenario_id
{
403 uint32_t scenario_id
;
406 #define APM_SG_PROP_ID_SID_SIZE 4
408 #define APM_PARAM_ID_CONTAINER_CONFIG 0x08001000
410 struct apm_param_id_container_cfg
{
411 uint32_t num_containers
;
414 struct apm_container_cfg
{
415 uint32_t container_id
;
419 struct apm_cont_capability
{
420 uint32_t capability_id
;
423 #define APM_CONTAINER_PROP_ID_CAPABILITY_LIST 0x08001011
424 #define APM_CONTAINER_PROP_ID_CAPABILITY_SIZE 8
426 #define APM_PROP_ID_INVALID 0x0
427 #define APM_CONTAINER_CAP_ID_PP 0x1
428 #define APM_CONTAINER_CAP_ID_PP 0x1
430 struct apm_cont_prop_id_cap_list
{
431 uint32_t num_capability_id
;
434 #define APM_CONTAINER_PROP_ID_GRAPH_POS 0x08001012
436 struct apm_cont_prop_id_graph_pos
{
440 #define APM_CONTAINER_PROP_ID_STACK_SIZE 0x08001013
442 struct apm_cont_prop_id_stack_size
{
446 #define APM_CONTAINER_PROP_ID_PROC_DOMAIN 0x08001014
448 struct apm_cont_prop_id_domain
{
449 uint32_t proc_domain
;
452 #define CONFIG_I2S_WS_SRC_EXTERNAL 0x0
453 #define CONFIG_I2S_WS_SRC_INTERNAL 0x1
455 #define PARAM_ID_I2S_INTF_CFG 0x08001019
456 struct param_id_i2s_intf_cfg
{
459 uint16_t sd_line_idx
;
463 #define I2S_INTF_TYPE_PRIMARY 0
464 #define I2S_INTF_TYPE_SECOINDARY 1
465 #define I2S_INTF_TYPE_TERTINARY 2
466 #define I2S_INTF_TYPE_QUATERNARY 3
467 #define I2S_INTF_TYPE_QUINARY 4
473 #define PORT_ID_I2S_INPUT 2
474 #define PORT_ID_I2S_OUPUT 1
475 #define I2S_STACK_SIZE 2048
477 #define PARAM_ID_DISPLAY_PORT_INTF_CFG 0x08001154
479 struct param_id_display_port_intf_cfg
{
480 uint32_t channel_allocation
;
481 /* Multi-Steam Transport index */
486 #define PARAM_ID_HW_EP_MF_CFG 0x08001017
487 struct param_id_hw_ep_mf
{
488 uint32_t sample_rate
;
490 uint16_t num_channels
;
491 uint32_t data_format
;
494 #define PARAM_ID_HW_EP_FRAME_SIZE_FACTOR 0x08001018
496 struct param_id_fram_size_factor
{
497 uint32_t frame_size_factor
;
500 #define APM_CONTAINER_PROP_ID_PARENT_CONTAINER_ID 0x080010CB
502 struct apm_cont_prop_id_parent_container
{
503 uint32_t parent_container_id
;
506 #define APM_CONTAINER_PROP_ID_HEAP_ID 0x08001174
507 #define APM_CONT_HEAP_DEFAULT 0x1
508 #define APM_CONT_HEAP_LOW_POWER 0x2
510 struct apm_cont_prop_id_headp_id
{
514 struct apm_modules_list
{
515 uint32_t sub_graph_id
;
516 uint32_t container_id
;
517 uint32_t num_modules
;
520 struct apm_module_obj
{
522 uint32_t instance_id
;
525 #define APM_MODULE_PROP_ID_PORT_INFO 0x08001015
526 #define APM_MODULE_PROP_ID_PORT_INFO_SZ 8
527 struct apm_module_prop_id_port_info
{
528 uint32_t max_ip_port
;
529 uint32_t max_op_port
;
532 #define DATA_LOGGING_MAX_INPUT_PORTS 0x1
533 #define DATA_LOGGING_MAX_OUTPUT_PORTS 0x1
534 #define DATA_LOGGING_STACK_SIZE 2048
535 #define PARAM_ID_DATA_LOGGING_CONFIG 0x08001031
537 struct data_logging_config
{
539 uint32_t log_tap_point_id
;
543 #define PARAM_ID_SAL_OUTPUT_CFG 0x08001016
544 struct param_id_sal_output_config
{
545 uint32_t bits_per_sample
;
548 #define PARAM_ID_SAL_LIMITER_ENABLE 0x0800101E
549 struct param_id_sal_limiter_enable
{
553 #define PARAM_ID_MFC_OUTPUT_MEDIA_FORMAT 0x08001024
554 #define PARAM_ID_EARLY_EOS_DELAY 0x0800114C
555 #define EARLY_EOS_DELAY_MS 150
557 struct param_id_mfc_media_format
{
558 uint32_t sample_rate
;
560 uint16_t num_channels
;
561 uint16_t channel_mapping
[];
564 struct param_id_gapless_early_eos_delay_t
{
565 uint32_t early_eos_delay_ms
;
568 struct media_format
{
569 uint32_t data_format
;
571 uint32_t payload_size
;
574 struct payload_media_fmt_pcm
{
575 uint32_t sample_rate
;
578 uint16_t bits_per_sample
;
581 uint16_t num_channels
;
582 uint8_t channel_mapping
[];
585 #define PARAM_ID_MODULE_ENABLE 0x08001026
586 struct param_id_module_enable
{
590 #define PARAM_ID_CODEC_DMA_INTF_CFG 0x08001063
592 struct param_id_codec_dma_intf_cfg
{
602 * RX2 | TX2 = 3... so on
605 uint32_t active_channels_mask
;
608 struct audio_hw_clk_cfg
{
611 uint32_t clock_attri
;
615 struct audio_hw_clk_rel_cfg
{
619 #define PARAM_ID_HW_EP_POWER_MODE_CFG 0x8001176
620 #define AR_HW_EP_POWER_MODE_0 0 /* default */
621 #define AR_HW_EP_POWER_MODE_1 1 /* XO Shutdown allowed */
622 #define AR_HW_EP_POWER_MODE_2 2 /* XO Shutdown not allowed */
624 struct param_id_hw_ep_power_mode_cfg
{
628 #define PARAM_ID_HW_EP_DMA_DATA_ALIGN 0x08001233
629 #define AR_HW_EP_DMA_DATA_ALIGN_MSB 0
630 #define AR_HW_EP_DMA_DATA_ALIGN_LSB 1
631 #define AR_PCM_MAX_NUM_CHANNEL 8
633 struct param_id_hw_ep_dma_data_align
{
634 uint32_t dma_data_align
;
637 #define PARAM_ID_VOL_CTRL_MASTER_GAIN 0x08001035
638 #define VOL_CTRL_DEFAULT_GAIN 0x2000
640 struct param_id_vol_ctrl_master_gain
{
641 uint16_t master_gain
;
646 #define PARAM_ID_REMOVE_INITIAL_SILENCE 0x0800114B
647 #define PARAM_ID_REMOVE_TRAILING_SILENCE 0x0800115D
649 #define PARAM_ID_REAL_MODULE_ID 0x0800100B
651 struct param_id_placeholder_real_module_id
{
652 uint32_t real_module_id
;
656 struct audioreach_connection
{
658 uint32_t src_mod_inst_id
;
659 uint32_t src_mod_op_port_id
;
660 uint32_t dst_mod_inst_id
;
661 uint32_t dst_mod_ip_port_id
;
662 struct list_head node
;
665 struct audioreach_graph_info
{
667 uint32_t num_sub_graphs
;
668 struct list_head sg_list
;
669 /* DPCM connection from FE Graph to BE graph */
670 uint32_t src_mod_inst_id
;
671 uint32_t src_mod_op_port_id
;
672 uint32_t dst_mod_inst_id
;
673 uint32_t dst_mod_ip_port_id
;
676 struct audioreach_sub_graph
{
677 uint32_t sub_graph_id
;
680 uint32_t scenario_id
;
681 struct list_head node
;
683 struct audioreach_graph_info
*info
;
684 uint32_t num_containers
;
685 struct list_head container_list
;
688 struct audioreach_container
{
689 uint32_t container_id
;
690 uint32_t capability_id
;
693 uint32_t proc_domain
;
694 struct list_head node
;
696 uint32_t num_modules
;
697 struct list_head modules_list
;
698 struct audioreach_sub_graph
*sub_graph
;
701 #define AR_MAX_MOD_LINKS 8
703 struct audioreach_module
{
705 uint32_t instance_id
;
707 uint32_t max_ip_port
;
708 uint32_t max_op_port
;
713 uint32_t num_connections
;
715 uint32_t src_mod_inst_id
;
716 uint32_t src_mod_op_port_id
[AR_MAX_MOD_LINKS
];
717 uint32_t dst_mod_inst_id
[AR_MAX_MOD_LINKS
];
718 uint32_t dst_mod_ip_port_id
[AR_MAX_MOD_LINKS
];
720 /* Format specifics */
726 uint32_t hw_interface_idx
;
727 uint32_t sd_line_idx
;
729 uint32_t frame_size_factor
;
730 uint32_t data_format
;
731 uint32_t hw_interface_type
;
733 /* PCM module specific */
734 uint32_t interleave_type
;
736 /* GAIN/Vol Control Module */
741 uint32_t log_tap_point_id
;
745 struct list_head node
;
746 struct audioreach_container
*container
;
747 struct snd_soc_dapm_widget
*widget
;
750 struct audioreach_module_config
{
759 u32 channel_allocation
;
762 struct snd_codec codec
;
763 u8 channel_map
[AR_PCM_MAX_NUM_CHANNEL
];
766 /* Packet Allocation routines */
767 void *audioreach_alloc_apm_cmd_pkt(int pkt_size
, uint32_t opcode
, uint32_t
769 void audioreach_set_default_channel_mapping(u8
*ch_map
, int num_channels
);
770 void *audioreach_alloc_cmd_pkt(int payload_size
, uint32_t opcode
,
771 uint32_t token
, uint32_t src_port
,
773 void *audioreach_alloc_apm_pkt(int pkt_size
, uint32_t opcode
, uint32_t token
,
775 void *audioreach_alloc_pkt(int payload_size
, uint32_t opcode
,
776 uint32_t token
, uint32_t src_port
,
778 void *audioreach_alloc_graph_pkt(struct q6apm
*apm
, struct audioreach_graph_info
780 /* Topology specific */
781 int audioreach_tplg_init(struct snd_soc_component
*component
);
783 /* Module specific */
784 void audioreach_graph_free_buf(struct q6apm_graph
*graph
);
785 int audioreach_map_memory_regions(struct q6apm_graph
*graph
,
786 unsigned int dir
, size_t period_sz
,
787 unsigned int periods
,
789 int audioreach_send_cmd_sync(struct device
*dev
, gpr_device_t
*gdev
, struct gpr_ibasic_rsp_result_t
*result
,
790 struct mutex
*cmd_lock
, gpr_port_t
*port
, wait_queue_head_t
*cmd_wait
,
791 struct gpr_pkt
*pkt
, uint32_t rsp_opcode
);
792 int audioreach_graph_send_cmd_sync(struct q6apm_graph
*graph
, struct gpr_pkt
*pkt
,
793 uint32_t rsp_opcode
);
794 int audioreach_set_media_format(struct q6apm_graph
*graph
,
795 struct audioreach_module
*module
,
796 struct audioreach_module_config
*cfg
);
797 int audioreach_shared_memory_send_eos(struct q6apm_graph
*graph
);
798 int audioreach_gain_set_vol_ctrl(struct q6apm
*apm
,
799 struct audioreach_module
*module
, int vol
);
800 int audioreach_send_u32_param(struct q6apm_graph
*graph
, struct audioreach_module
*module
,
801 uint32_t param_id
, uint32_t param_val
);
802 int audioreach_compr_set_param(struct q6apm_graph
*graph
, struct audioreach_module_config
*mcfg
);
804 #endif /* __AUDIOREACH_H__ */