xref: /OK3568_Linux_fs/kernel/sound/soc/qcom/qdsp6/q6adm.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef __Q6_ADM_V2_H__
3*4882a593Smuzhiyun #define __Q6_ADM_V2_H__
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #define ADM_PATH_PLAYBACK	0x1
6*4882a593Smuzhiyun #define ADM_PATH_LIVE_REC	0x2
7*4882a593Smuzhiyun #define MAX_COPPS_PER_PORT	8
8*4882a593Smuzhiyun #define NULL_COPP_TOPOLOGY	0x00010312
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun /* multiple copp per stream. */
11*4882a593Smuzhiyun struct route_payload {
12*4882a593Smuzhiyun 	int num_copps;
13*4882a593Smuzhiyun 	int session_id;
14*4882a593Smuzhiyun 	int copp_idx[MAX_COPPS_PER_PORT];
15*4882a593Smuzhiyun 	int port_id[MAX_COPPS_PER_PORT];
16*4882a593Smuzhiyun };
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun struct q6copp;
19*4882a593Smuzhiyun struct q6copp *q6adm_open(struct device *dev, int port_id, int path, int rate,
20*4882a593Smuzhiyun 			   int channel_mode, int topology, int perf_mode,
21*4882a593Smuzhiyun 			   uint16_t bit_width, int app_type, int acdb_id);
22*4882a593Smuzhiyun int q6adm_close(struct device *dev, struct q6copp *copp);
23*4882a593Smuzhiyun int q6adm_get_copp_id(struct q6copp *copp);
24*4882a593Smuzhiyun int q6adm_matrix_map(struct device *dev, int path,
25*4882a593Smuzhiyun 		     struct route_payload payload_map, int perf_mode);
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun #endif /* __Q6_ADM_V2_H__ */
28