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