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