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