blob: 1c9ad1a9d4baeb84620e1c3251fa1f747efea103 [file] [log] [blame]
Vignesh Kulothungan5c109922018-01-24 17:36:18 -08001/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <linux/init.h>
14#include <linux/err.h>
15#include <linux/module.h>
16#include <linux/moduleparam.h>
17#include <linux/platform_device.h>
18#include <linux/bitops.h>
19#include <linux/mutex.h>
20#include <linux/of_device.h>
21#include <linux/slab.h>
22#include <sound/core.h>
23#include <sound/soc.h>
24#include <sound/soc-dapm.h>
25#include <sound/pcm.h>
26#include <sound/initval.h>
27#include <sound/control.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053028#include <sound/tlv.h>
29#include <sound/asound.h>
30#include <sound/pcm_params.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053031#include <sound/hwdep.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053032#include <sound/audio_effects.h>
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053033#include <dsp/msm-dts-srs-tm-config.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053034#include <dsp/q6voice.h>
35#include <dsp/q6adm-v2.h>
36#include <dsp/q6asm-v2.h>
37#include <dsp/q6afe-v2.h>
38#include <dsp/q6lsm.h>
39#include <dsp/q6core.h>
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080040#include <dsp/q6common.h>
Laxminath Kasam605b42f2017-08-01 22:02:15 +053041#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053042
43#include "msm-pcm-routing-v2.h"
44#include "msm-pcm-routing-devdep.h"
45#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053046#include "msm-dolby-dap-config.h"
47#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053048
49#ifndef CONFIG_DOLBY_DAP
50#undef DOLBY_ADM_COPP_TOPOLOGY_ID
51#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
52#endif
53
54#ifndef CONFIG_DOLBY_DS2
55#undef DS2_ADM_COPP_TOPOLOGY_ID
56#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
57#endif
58
59static struct mutex routing_lock;
60
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053061static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053062
63static int fm_switch_enable;
64static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080065static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053066static int int0_mi2s_switch_enable;
67static int int4_mi2s_switch_enable;
68static int pri_mi2s_switch_enable;
69static int sec_mi2s_switch_enable;
70static int tert_mi2s_switch_enable;
71static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053072static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053073static int fm_pcmrx_switch_enable;
74static int usb_switch_enable;
75static int lsm_port_index;
76static int slim0_rx_aanc_fb_port;
77static int msm_route_ec_ref_rx;
78static int msm_ec_ref_ch = 4;
79static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
80static int msm_ec_ref_sampling_rate = 48000;
81static uint32_t voc_session_id = ALL_SESSION_VSID;
82static int msm_route_ext_ec_ref;
83static bool is_custom_stereo_on;
84static bool is_ds2_on;
85static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053086static int aanc_level;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053087
88#define WEIGHT_0_DB 0x4000
89/* all the FEs which can support channel mixer */
90static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
91/* input BE for each FE */
92static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
93
94enum {
95 MADNONE,
96 MADAUDIO,
97 MADBEACON,
98 MADULTRASOUND,
99 MADSWAUDIO,
100};
101
102#define ADM_LSM_PORT_INDEX 9
103
104#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
105#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
106#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
107#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
108#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
109#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
110#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
111#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
112#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
113#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530114#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
115#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530116#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530117
118#define LSM_FUNCTION_TEXT "LSM Function"
119static const char * const lsm_port_text[] = {
120 "None",
121 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
122 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
123 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530124 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
125 TX_CDC_DMA_TX_3_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530126};
127
128struct msm_pcm_route_bdai_pp_params {
129 u16 port_id; /* AFE port ID */
130 unsigned long pp_params_config;
131 bool mute_on;
132 int latency;
133};
134
135static struct msm_pcm_route_bdai_pp_params
136 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
137 {HDMI_RX, 0, 0, 0},
138 {DISPLAY_PORT_RX, 0, 0, 0},
139};
140
141/*
142 * The be_dai_name_table is passed to HAL so that it can specify the
143 * BE ID for the BE it wants to enable based on the name. Thus there
144 * is a matching table and structure in HAL that need to be updated
145 * if any changes to these are made.
146 */
147struct msm_pcm_route_bdai_name {
148 unsigned int be_id;
149 char be_name[LPASS_BE_NAME_MAX_LENGTH];
150};
151static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
152
153static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
154 int fe_id);
155
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700156static void msm_routing_load_topology(size_t data_size, void *data);
157static void msm_routing_unload_topology(uint32_t topology_id);
158
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530159static int msm_routing_get_bit_width(unsigned int format)
160{
161 int bit_width;
162
163 switch (format) {
164 case SNDRV_PCM_FORMAT_S32_LE:
165 bit_width = 32;
166 break;
167 case SNDRV_PCM_FORMAT_S24_LE:
168 case SNDRV_PCM_FORMAT_S24_3LE:
169 bit_width = 24;
170 break;
171 case SNDRV_PCM_FORMAT_S16_LE:
172 default:
173 bit_width = 16;
174 }
175 return bit_width;
176}
177
178static bool msm_is_resample_needed(int input_sr, int output_sr)
179{
180 bool rc = false;
181
182 if (input_sr != output_sr)
183 rc = true;
184
185 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
186 (rc ? "oh yes" : "not really"),
187 input_sr, output_sr);
188
189 return rc;
190}
191
192static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
193 int channels)
194{
195 int rc = 0;
196
197 switch (topology) {
198 case SRS_TRUMEDIA_TOPOLOGY_ID:
199 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
200 msm_dts_srs_tm_init(port_id, copp_idx);
201 break;
202 case DS2_ADM_COPP_TOPOLOGY_ID:
203 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
204 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
205 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
206 is_custom_stereo_on);
207 if (rc < 0)
208 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
209 __func__, topology, port_id,
210 is_custom_stereo_on, rc);
211 break;
212 case DOLBY_ADM_COPP_TOPOLOGY_ID:
213 if (is_ds2_on) {
214 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
215 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
216 is_custom_stereo_on);
217 if (rc < 0)
218 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
219 __func__, topology, port_id, rc);
220 } else {
221 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
222 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
223 is_custom_stereo_on);
224 if (rc < 0)
225 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
226 __func__, topology, port_id, rc);
227 }
228 break;
229 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
230 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
231 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
232 if (rc < 0)
233 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
234 __func__, topology, port_id, copp_idx, rc);
235 break;
236 default:
237 /* custom topology specific feature param handlers */
238 break;
239 }
240}
241
242static void msm_pcm_routing_deinit_pp(int port_id, int topology)
243{
244 switch (topology) {
245 case SRS_TRUMEDIA_TOPOLOGY_ID:
246 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
247 msm_dts_srs_tm_deinit(port_id);
248 break;
249 case DS2_ADM_COPP_TOPOLOGY_ID:
250 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
251 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
252 msm_ds2_dap_deinit(port_id);
253 break;
254 case DOLBY_ADM_COPP_TOPOLOGY_ID:
255 if (is_ds2_on) {
256 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
257 msm_ds2_dap_deinit(port_id);
258 } else {
259 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
260 msm_dolby_dap_deinit(port_id);
261 }
262 break;
263 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
264 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
265 msm_qti_pp_asphere_deinit(port_id);
266 break;
267 default:
268 /* custom topology specific feature deinit handlers */
269 break;
270 }
271}
272
273static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
274 int path_type, int perf_mode)
275{
276 int itr = 0, rc = 0;
277
278 if ((path_type == ADM_PATH_PLAYBACK) &&
279 (perf_mode == LEGACY_PCM_MODE) &&
280 is_custom_stereo_on) {
281 for (itr = 0; itr < payload.num_copps; itr++) {
282 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
283 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
284 continue;
285 }
286
287 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
288 payload.port_id[itr],
289 payload.copp_idx[itr],
290 payload.session_id,
291 Q14_GAIN_ZERO_POINT_FIVE,
292 Q14_GAIN_ZERO_POINT_FIVE,
293 Q14_GAIN_ZERO_POINT_FIVE,
294 Q14_GAIN_ZERO_POINT_FIVE);
295 if (rc < 0)
296 pr_err("%s: err setting custom stereo\n",
297 __func__);
298 }
299 }
300}
301
302#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
303struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530304 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
305 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
306 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
307 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
308 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
309 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
310 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
311 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
312 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
313 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530314 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530315 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530316 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530317 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530318 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530319 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530320 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530321 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530322 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530323 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530324 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530325 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530326 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530327 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530328 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530329 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
330 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
331 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
332 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
333 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
334 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
335 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
336 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
337 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
338 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
339 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
340 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
341 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
342 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
343 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
344 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
345 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
346 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
347 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
348 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
349 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
350 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
351 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530352 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530353 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530354 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530355 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530356 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530357 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530358 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530359 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530360 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530361 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530362 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530363 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530364 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530365 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530366 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530367 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530368 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530369 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530370 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530371 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530372 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530373 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200374 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530375 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530376 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530377 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530378 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530379 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530380 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530381 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530382 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530383 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530384 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530385 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530386 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530387 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530388 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530389 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530390 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530391 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530392 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530393 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530394 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530395 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530396 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530397 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530398 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530399 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530400 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530401 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530402 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530403 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530404 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530405 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530406 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530407 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530408 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530409 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530410 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530411 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530412 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530413 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530414 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530415 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530416 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530417 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530418 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530419 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530420 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530421 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530422 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530423 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530424 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530425 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530426 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530427 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530428 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530429 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530430 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530431 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530432 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530433 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530434 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530435 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530436 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530437 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530438 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530439 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530440 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530441 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530442 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530443 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530444 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530445 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530446 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530447 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530448 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530449 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530450 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530451 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530452 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530453 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530454 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530455 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530456 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530457 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530458 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530459 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530460 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530461 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530462 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530463 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530464 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530465 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530466 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530467 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530468 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530469 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530470 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530471 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530472 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530473 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530474 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530475 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530476 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530477 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530478 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530479 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530480 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530481 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530482 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530483 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530484 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530485 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530486 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530487 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530488 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530489 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530490 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530491 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530492 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530493 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530494 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530495 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530496 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530497 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530498 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530499 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530500 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530501 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530502 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530503 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530504 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530505 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530506 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530507 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530508 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530509 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530510 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530511 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530512 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530513 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530514 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530515 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530516 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530517 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530518 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530519 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530520 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530521 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530522 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530523 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530524 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530525 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530526 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530527 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530528 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530529 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530530 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530531 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530532 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530533 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530534 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530535 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530536 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530537 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530538 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530539 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530540 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530541 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530542 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530543 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530544 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530545 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530546 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530547 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530548 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530549 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530550 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530551 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700552 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530553 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530554 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530555 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530556 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530557 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530558 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530559 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530560 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530561 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530562 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530563 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530564 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530565 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530566 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530567 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530568 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530569 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530570 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530571 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530572 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530573 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530574 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530575 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530576 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530577 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530578 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530579 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530580 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530581 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530582 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530583 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530584 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530585 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530587 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530588 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530589 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530590 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530591 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530592 LPASS_BE_INT6_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530593 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530594 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530595 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530596 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530597 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530598 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530599 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530600 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530601 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530602 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530603 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530604 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530605 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530606 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530607 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530608 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530609 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530610 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530611 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530612 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530613 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530614 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530615 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530616 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530617 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530618 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530619 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530620 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530621 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530622 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530623 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530624 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530625 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530626 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530627 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530628 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530629 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530630 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530631 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530632 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530633 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530634 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530635 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200636 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530637 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200638 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530639 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200640 LPASS_BE_SEC_SPDIF_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530641};
642
643/* Track ASM playback & capture sessions of DAI
644 * Track LSM listen sessions
645 */
646static struct msm_pcm_routing_fdai_data
647 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
648 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530649 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
650 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530651 /* MULTIMEDIA2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530652 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
653 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530654 /* MULTIMEDIA3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530655 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
656 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530657 /* MULTIMEDIA4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530658 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
659 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530660 /* MULTIMEDIA5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530661 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
662 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530663 /* MULTIMEDIA6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530664 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
665 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530666 /* MULTIMEDIA7*/
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530667 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
668 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530669 /* MULTIMEDIA8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530670 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
671 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530672 /* MULTIMEDIA9 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530673 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
674 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530675 /* MULTIMEDIA10 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530676 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
677 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530678 /* MULTIMEDIA11 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530679 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
680 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530681 /* MULTIMEDIA12 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530682 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
683 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530684 /* MULTIMEDIA13 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530685 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
686 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530687 /* MULTIMEDIA14 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530688 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
689 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530690 /* MULTIMEDIA15 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530691 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
692 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530693 /* MULTIMEDIA16 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530694 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
695 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530696 /* MULTIMEDIA17 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530697 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
698 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530699 /* MULTIMEDIA18 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530700 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
701 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530702 /* MULTIMEDIA19 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530703 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
704 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530705 /* MULTIMEDIA20 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530706 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
707 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700708 /* MULTIMEDIA21 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530709 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
710 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530711 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530712 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
713 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530714 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530715 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
716 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530717 /* VOIP */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530718 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
719 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530720 /* AFE_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530721 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
722 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530723 /* AFE_TX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530724 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
725 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530726 /* VOICE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530727 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
728 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530729 /* DTMF_RX */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530730 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
731 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530732 /* QCHAT */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530733 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
734 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530735 /* VOLTE_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530736 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
737 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530738 /* LSM1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530739 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
740 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530741 /* LSM2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530742 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
743 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530744 /* LSM3 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530745 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
746 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530747 /* LSM4 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530748 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
749 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530750 /* LSM5 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530751 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
752 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530753 /* LSM6 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530754 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
755 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530756 /* LSM7 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530757 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
758 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530759 /* LSM8 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530760 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
761 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530762 /* VOICE2_STUB */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530763 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
764 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530765 /* VOICEMMODE1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530766 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
767 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530768 /* VOICEMMODE2 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530769 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
770 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530771};
772
773static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
774 [MSM_BACKEND_DAI_MAX];
775static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
776static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
777static struct msm_pcm_stream_app_type_cfg
778 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
779
780static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
781
782/* The caller of this should aqcuire routing lock */
783void msm_pcm_routing_get_bedai_info(int be_idx,
784 struct msm_pcm_routing_bdai_data *be_dai)
785{
786 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
787 memcpy(be_dai, &msm_bedais[be_idx],
788 sizeof(struct msm_pcm_routing_bdai_data));
789}
790
791/* The caller of this should aqcuire routing lock */
792void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
793 struct msm_pcm_routing_fdai_data *fe_dai)
794{
795 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
796 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
797 sizeof(struct msm_pcm_routing_fdai_data));
798}
799
800void msm_pcm_routing_acquire_lock(void)
801{
802 mutex_lock(&routing_lock);
803}
804
805void msm_pcm_routing_release_lock(void)
806{
807 mutex_unlock(&routing_lock);
808}
809
810static int msm_pcm_routing_get_app_type_idx(int app_type)
811{
812 int idx;
813
814 pr_debug("%s: app_type: %d\n", __func__, app_type);
815 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
816 if (app_type_cfg[idx].app_type == app_type)
817 return idx;
818 }
819 pr_info("%s: App type not available, fallback to default\n", __func__);
820 return 0;
821}
822
823static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
824{
825 int idx;
826
827 pr_debug("%s: app_type: %d\n", __func__, app_type);
828 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
829 if (lsm_app_type_cfg[idx].app_type == app_type)
830 return idx;
831 }
832 pr_debug("%s: App type not available, fallback to default\n", __func__);
833 return 0;
834}
835
836static bool is_mm_lsm_fe_id(int fe_id)
837{
838 bool rc = true;
839
840 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
841 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
842 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
843 rc = false;
844 }
845 return rc;
846}
847
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700848/*
849 * msm_pcm_routing_send_chmix_cfg:
850 * send the channel mixer command to mix the input channels
851 * into output channels.
852 *
853 * @fe_id: front end id
854 * @ip_channel_cnt: input channel count
855 * @op_channel_cnt: output channel count
856 * @ch_wght_coeff: channel weight co-efficients for channel mixing
857 * @session_type: indicates session is of type TX or RX
858 * @stream_type: indicates either Audio or Listen stream type
859 */
860int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
861 int op_channel_cnt, int *ch_wght_coeff,
862 int session_type, int stream_type)
863{
864
865 int rc = 0, idx = 0;
866 int be_index = 0, port_id;
867 unsigned int session_id = 0;
868
869 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
870 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
871 stream_type);
872 if (!is_mm_lsm_fe_id(fe_id)) {
873 /* bad ID assigned in machine driver */
874 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
875 return -EINVAL;
876 }
877
878 if (ch_wght_coeff == NULL) {
879 pr_err("%s: Null channel weightage coefficients passed\n",
880 __func__);
881 return -EINVAL;
882 }
883
884 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
885 port_id = msm_bedais[be_index].port_id;
886 if (!msm_bedais[be_index].active ||
887 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
888 continue;
889
890 session_id = fe_dai_map[fe_id][session_type].strm_id;
891
892 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
893 unsigned long copp =
894 session_copp_map[fe_id][session_type][be_index];
895 if (!test_bit(idx, &copp))
896 continue;
897 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
898 session_id, ip_channel_cnt,
899 op_channel_cnt, ch_wght_coeff,
900 session_type, stream_type);
901 if (rc < 0)
902 pr_err("%s: err setting channel mix config\n",
903 __func__);
904 }
905 }
906
907 return 0;
908}
909EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530911int msm_pcm_routing_reg_stream_app_type_cfg(
912 int fedai_id, int session_type, int be_id,
913 struct msm_pcm_stream_app_type_cfg *cfg_data)
914{
915 int ret = 0;
916
917 if (cfg_data == NULL) {
918 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
919 ret = -EINVAL;
920 goto done;
921 }
922
923 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
924 __func__, fedai_id, session_type, be_id,
925 cfg_data->app_type, cfg_data->acdb_dev_id,
926 cfg_data->sample_rate);
927
928 if (!is_mm_lsm_fe_id(fedai_id)) {
929 pr_err("%s: Invalid machine driver ID %d\n",
930 __func__, fedai_id);
931 ret = -EINVAL;
932 goto done;
933 }
934 if (session_type != SESSION_TYPE_RX &&
935 session_type != SESSION_TYPE_TX) {
936 pr_err("%s: Invalid session type %d\n",
937 __func__, session_type);
938 ret = -EINVAL;
939 goto done;
940 }
941 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
942 pr_err("%s: Received out of bounds be_id %d\n",
943 __func__, be_id);
944 ret = -EINVAL;
945 goto done;
946 }
947
948 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
949
950 /*
951 * Store the BE ID of the configuration information set as the latest so
952 * the get mixer control knows what to return.
953 */
954 last_be_id_configured[fedai_id][session_type] = be_id;
955
956done:
957 return ret;
958}
959EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
960
961/**
962 * msm_pcm_routing_get_stream_app_type_cfg
963 *
964 * Receives fedai_id, session_type, be_id, and populates app_type,
965 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
966 * -EINVAL and does not alter passed values.
967 *
968 * fedai_id - Passed value, front end ID for which app type config is wanted
969 * session_type - Passed value, session type for which app type config
970 * is wanted
971 * be_id - Returned value, back end device id the app type config data is for
972 * cfg_data - Returned value, configuration data used by app type config
973 */
974int msm_pcm_routing_get_stream_app_type_cfg(
975 int fedai_id, int session_type, int *bedai_id,
976 struct msm_pcm_stream_app_type_cfg *cfg_data)
977{
978 int be_id;
979 int ret = 0;
980
981 if (bedai_id == NULL) {
982 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
983 ret = -EINVAL;
984 goto done;
985 } else if (cfg_data == NULL) {
986 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
987 ret = -EINVAL;
988 goto done;
989 } else if (!is_mm_lsm_fe_id(fedai_id)) {
990 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
991 ret = -EINVAL;
992 goto done;
993 } else if (session_type != SESSION_TYPE_RX &&
994 session_type != SESSION_TYPE_TX) {
995 pr_err("%s: Invalid session type %d\n", __func__, session_type);
996 ret = -EINVAL;
997 goto done;
998 }
999
1000 be_id = last_be_id_configured[fedai_id][session_type];
1001 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1002 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1003 ret = -EINVAL;
1004 goto done;
1005 }
1006
1007 *bedai_id = be_id;
1008 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1009 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1010 __func__, fedai_id, session_type, *bedai_id,
1011 cfg_data->app_type, cfg_data->acdb_dev_id,
1012 cfg_data->sample_rate);
1013done:
1014 return ret;
1015}
1016EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1017
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301018static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1019 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301020{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301021 struct list_head *ptr, *next;
1022 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301023 pr_debug("%s\n", __func__);
1024
1025 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301026 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301027
1028 cal_block = list_entry(ptr,
1029 struct cal_block_data, list);
1030
Vikram Panduranga770b8382017-09-27 12:17:36 -07001031 if (cal_utils_is_cal_stale(cal_block))
1032 continue;
1033
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301034 if (((struct audio_cal_info_adm_top *)cal_block
1035 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301036 return cal_block;
1037 }
1038 }
1039 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1040 return NULL;
1041}
1042
1043static struct cal_block_data *msm_routing_find_topology(int path,
1044 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301045 int acdb_id,
1046 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301047{
1048 struct list_head *ptr, *next;
1049 struct cal_block_data *cal_block = NULL;
1050 struct audio_cal_info_adm_top *cal_info;
1051
1052 pr_debug("%s\n", __func__);
1053
1054 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301055 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301056
1057 cal_block = list_entry(ptr,
1058 struct cal_block_data, list);
1059
Vikram Panduranga770b8382017-09-27 12:17:36 -07001060 if (cal_utils_is_cal_stale(cal_block))
1061 continue;
1062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301063 cal_info = (struct audio_cal_info_adm_top *)
1064 cal_block->cal_info;
1065 if ((cal_info->path == path) &&
1066 (cal_info->app_type == app_type) &&
1067 (cal_info->acdb_id == acdb_id)) {
1068 return cal_block;
1069 }
1070 }
1071 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1072 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001073 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301074}
1075
Vikram Panduranga770b8382017-09-27 12:17:36 -07001076/*
1077 * Retrieving cal_block will mark cal_block as stale.
1078 * Hence it cannot be reused or resent unless the flag
1079 * is reset.
1080 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301081static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1082 int be_id)
1083{
1084 int topology = NULL_COPP_TOPOLOGY;
1085 struct cal_block_data *cal_block = NULL;
1086 int app_type = 0, acdb_dev_id = 0;
1087
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301088 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1089 __func__, fedai_id, session_type, be_id);
1090
1091 if (cal_data == NULL)
1092 goto done;
1093
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301094 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1095 acdb_dev_id =
1096 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1097
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301098 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301099 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301100 acdb_dev_id,
1101 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001102 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301103 topology = ((struct audio_cal_info_adm_top *)
1104 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001105 cal_utils_mark_cal_used(cal_block);
1106 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1107 } else {
1108 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301109
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301110 pr_debug("%s: Check for LSM topology\n", __func__);
1111 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1112 cal_block = msm_routing_find_topology(session_type, app_type,
1113 acdb_dev_id,
1114 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001115 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301116 topology = ((struct audio_cal_info_adm_top *)
1117 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001118 cal_utils_mark_cal_used(cal_block);
1119 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301120 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1121 }
1122
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301123done:
1124 pr_debug("%s: Using topology %d\n", __func__, topology);
1125 return topology;
1126}
1127
1128static uint8_t is_be_dai_extproc(int be_dai)
1129{
1130 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1131 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1132 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1133 return 1;
1134 else
1135 return 0;
1136}
1137
1138static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1139 int path_type, int perf_mode,
1140 uint32_t passthr_mode)
1141{
1142 int i, port_type, j, num_copps = 0;
1143 struct route_payload payload;
1144
1145 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1146 path_type == ADM_PATH_COMPRESSED_RX) ?
1147 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1148
1149 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1150 if (!is_be_dai_extproc(i) &&
1151 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1152 (msm_bedais[i].active) &&
1153 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1154 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1155 unsigned long copp =
1156 session_copp_map[fedai_id][sess_type][i];
1157 if (test_bit(j, &copp)) {
1158 payload.port_id[num_copps] =
1159 msm_bedais[i].port_id;
1160 payload.copp_idx[num_copps] = j;
1161 payload.app_type[num_copps] =
1162 fe_dai_app_type_cfg
1163 [fedai_id][sess_type][i]
1164 .app_type;
1165 payload.acdb_dev_id[num_copps] =
1166 fe_dai_app_type_cfg
1167 [fedai_id][sess_type][i]
1168 .acdb_dev_id;
1169 payload.sample_rate[num_copps] =
1170 fe_dai_app_type_cfg
1171 [fedai_id][sess_type][i]
1172 .sample_rate;
1173 num_copps++;
1174 }
1175 }
1176 }
1177 }
1178
1179 if (num_copps) {
1180 payload.num_copps = num_copps;
1181 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1182 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1183 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1184 }
1185}
1186
1187void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1188 int stream_type)
1189{
1190 int i, session_type, path_type, port_type;
1191 u32 mode = 0;
1192
1193 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1194 /* bad ID assigned in machine driver */
1195 pr_err("%s: bad MM ID\n", __func__);
1196 return;
1197 }
1198
1199 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1200 session_type = SESSION_TYPE_RX;
1201 path_type = ADM_PATH_PLAYBACK;
1202 port_type = MSM_AFE_PORT_TYPE_RX;
1203 } else {
1204 session_type = SESSION_TYPE_TX;
1205 path_type = ADM_PATH_LIVE_REC;
1206 port_type = MSM_AFE_PORT_TYPE_TX;
1207 }
1208
1209 mutex_lock(&routing_lock);
1210
1211 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1212 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1213 if (!is_be_dai_extproc(i) &&
1214 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1215 (msm_bedais[i].active) &&
1216 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1217 mode = afe_get_port_type(msm_bedais[i].port_id);
1218 adm_connect_afe_port(mode, dspst_id,
1219 msm_bedais[i].port_id);
1220 break;
1221 }
1222 }
1223 mutex_unlock(&routing_lock);
1224}
1225
1226static bool route_check_fe_id_adm_support(int fe_id)
1227{
1228 bool rc = true;
1229
1230 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1231 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1232 /* fe id is listen while port is set to afe */
1233 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1234 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1235 __func__, fe_id, lsm_port_index);
1236 rc = false;
1237 }
1238 }
1239
1240 return rc;
1241}
1242
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001243/*
1244 * msm_pcm_routing_get_pp_ch_cnt:
1245 * Read the processed channel count
1246 *
1247 * @fe_id: Front end ID
1248 * @session_type: Inidicates RX or TX session type
1249 */
1250int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1251{
1252 struct msm_pcm_stream_app_type_cfg cfg_data;
1253 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301254 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001255
1256 memset(&cfg_data, 0, sizeof(cfg_data));
1257
1258 if (!is_mm_lsm_fe_id(fe_id)) {
1259 pr_err("%s: bad MM ID\n", __func__);
1260 return -EINVAL;
1261 }
1262
1263 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1264 &be_id, &cfg_data);
1265 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301266 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001267 return ret;
1268 }
1269
1270 app_type = cfg_data.app_type;
1271 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1272 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1273}
1274EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1275
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301276int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1277 int dspst_id, int stream_type,
1278 uint32_t passthr_mode)
1279{
1280 int i, j, session_type, path_type, port_type, topology;
1281 int num_copps = 0;
1282 struct route_payload payload;
1283 u32 channels, sample_rate;
1284 u16 bit_width = 16;
1285 bool is_lsm;
1286
1287 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1288 __func__, fe_id, perf_mode, dspst_id,
1289 stream_type, passthr_mode);
1290 if (!is_mm_lsm_fe_id(fe_id)) {
1291 /* bad ID assigned in machine driver */
1292 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1293 return -EINVAL;
1294 }
1295
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301296 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1297 session_type = SESSION_TYPE_RX;
1298 if (passthr_mode != LEGACY_PCM)
1299 path_type = ADM_PATH_COMPRESSED_RX;
1300 else
1301 path_type = ADM_PATH_PLAYBACK;
1302 port_type = MSM_AFE_PORT_TYPE_RX;
1303 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1304 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301305 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301306 path_type = ADM_PATH_COMPRESSED_TX;
1307 else
1308 path_type = ADM_PATH_LIVE_REC;
1309 port_type = MSM_AFE_PORT_TYPE_TX;
1310 } else {
1311 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1312 return -EINVAL;
1313 }
1314
1315 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1316 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1317 mutex_lock(&routing_lock);
1318
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301319 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301320 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1321 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1322 if (!route_check_fe_id_adm_support(fe_id)) {
1323 /* ignore adm open if not supported for fe_id */
1324 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1325 mutex_unlock(&routing_lock);
1326 return 0;
1327 }
1328
1329 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301330 /* re-enable EQ if active */
1331 msm_qti_pp_send_eq_values(fe_id);
1332 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301333 if (!is_be_dai_extproc(i) &&
1334 (afe_get_port_type(msm_bedais[i].port_id) ==
1335 port_type) &&
1336 (msm_bedais[i].active) &&
1337 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1338 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1339
1340 /*
1341 * check if ADM needs to be configured with different
1342 * channel mapping than backend
1343 */
1344 if (!msm_bedais[i].adm_override_ch)
1345 channels = msm_bedais[i].channel;
1346 else
1347 channels = msm_bedais[i].adm_override_ch;
1348
1349 bit_width = msm_routing_get_bit_width(
1350 msm_bedais[i].format);
1351 app_type =
1352 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1353 if (app_type && is_lsm) {
1354 app_type_idx =
1355 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1356 sample_rate =
1357 fe_dai_app_type_cfg[fe_id][session_type][i]
1358 .sample_rate;
1359 bit_width =
1360 lsm_app_type_cfg[app_type_idx].bit_width;
1361 } else if (app_type) {
1362 app_type_idx =
1363 msm_pcm_routing_get_app_type_idx(
1364 app_type);
1365 sample_rate =
1366 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1367 bit_width =
1368 app_type_cfg[app_type_idx].bit_width;
1369 } else {
1370 sample_rate = msm_bedais[i].sample_rate;
1371 }
1372 acdb_dev_id =
1373 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1374 topology = msm_routing_get_adm_topology(fe_id,
1375 session_type,
1376 i);
1377 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1378 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001379 COMPRESSED_PASSTHROUGH_GEN)
1380 || (passthr_mode ==
1381 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301382 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1383 pr_debug("%s: Before adm open topology %d\n", __func__,
1384 topology);
1385
1386 copp_idx =
1387 adm_open(msm_bedais[i].port_id,
1388 path_type, sample_rate, channels,
1389 topology, perf_mode, bit_width,
1390 app_type, acdb_dev_id);
1391 if ((copp_idx < 0) ||
1392 (copp_idx >= MAX_COPPS_PER_PORT)) {
1393 pr_err("%s:adm open failed coppid:%d\n",
1394 __func__, copp_idx);
1395 mutex_unlock(&routing_lock);
1396 return -EINVAL;
1397 }
1398 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1399 __func__, fe_id, session_type, i);
1400 set_bit(copp_idx,
1401 &session_copp_map[fe_id][session_type][i]);
1402
1403 if (msm_is_resample_needed(
1404 sample_rate,
1405 msm_bedais[i].sample_rate))
1406 adm_copp_mfc_cfg(
1407 msm_bedais[i].port_id, copp_idx,
1408 msm_bedais[i].sample_rate);
1409
1410 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1411 unsigned long copp =
1412 session_copp_map[fe_id][session_type][i];
1413 if (test_bit(j, &copp)) {
1414 payload.port_id[num_copps] =
1415 msm_bedais[i].port_id;
1416 payload.copp_idx[num_copps] = j;
1417 payload.app_type[num_copps] =
1418 fe_dai_app_type_cfg
1419 [fe_id][session_type][i]
1420 .app_type;
1421 payload.acdb_dev_id[num_copps] =
1422 fe_dai_app_type_cfg
1423 [fe_id][session_type][i]
1424 .acdb_dev_id;
1425 payload.sample_rate[num_copps] =
1426 fe_dai_app_type_cfg
1427 [fe_id][session_type][i]
1428 .sample_rate;
1429 num_copps++;
1430 }
1431 }
1432 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001433 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301434 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301435 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001436 msm_bedais[i].port_id,
1437 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301438 }
1439 }
1440 if (num_copps) {
1441 payload.num_copps = num_copps;
1442 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1443 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1444 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1445 }
1446 mutex_unlock(&routing_lock);
1447 return 0;
1448}
1449
1450static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1451{
1452 u32 session_id;
1453
1454 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301455 case MSM_FRONTEND_DAI_QCHAT:
1456 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1457 break;
1458 case MSM_FRONTEND_DAI_VOIP:
1459 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1460 break;
1461 case MSM_FRONTEND_DAI_VOICEMMODE1:
1462 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1463 break;
1464 case MSM_FRONTEND_DAI_VOICEMMODE2:
1465 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1466 break;
1467 default:
1468 session_id = 0;
1469 }
1470
1471 pr_debug("%s session_id 0x%x", __func__, session_id);
1472 return session_id;
1473}
1474
1475static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1476 int dspst_id, int stream_type)
1477{
1478 int copp_idx = 0;
1479 int sess_type = 0;
1480 int i = 0, j = 0, be_id;
1481 int ret = 0;
1482
1483 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1484 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1485 return 0;
1486 }
1487
1488 if (!(channel_mixer[fe_id].enable)) {
1489 pr_debug("%s: channel mixer not enabled for FE %d\n",
1490 __func__, fe_id);
1491 return 0;
1492 }
1493
1494 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1495 sess_type = SESSION_TYPE_RX;
1496 else
1497 sess_type = SESSION_TYPE_TX;
1498
1499 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1500 ++i) {
1501 be_id = channel_input[fe_id][i] - 1;
1502 channel_mixer[fe_id].input_channels[i] =
1503 msm_bedais[be_id].channel;
1504
1505 if ((msm_bedais[be_id].active) &&
1506 test_bit(fe_id,
1507 &msm_bedais[be_id].fe_sessions[0])) {
1508 unsigned long copp =
1509 session_copp_map[fe_id][sess_type][be_id];
1510 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1511 if (test_bit(j, &copp)) {
1512 copp_idx = j;
1513 break;
1514 }
1515 }
1516
1517 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1518 __func__,
1519 fe_id, be_id, msm_bedais[be_id].channel,
1520 copp_idx);
1521 ret = adm_programable_channel_mixer(
1522 msm_bedais[be_id].port_id,
1523 copp_idx, dspst_id, sess_type,
1524 channel_mixer + fe_id, i);
1525 }
1526 }
1527
1528 return ret;
1529}
1530
1531int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1532 int dspst_id, int stream_type)
1533{
1534 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1535 struct route_payload payload;
1536 u32 channels, sample_rate;
1537 uint16_t bits_per_sample = 16;
1538 uint32_t passthr_mode = LEGACY_PCM;
1539 int ret = 0;
1540
1541 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1542 /* bad ID assigned in machine driver */
1543 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1544 return -EINVAL;
1545 }
1546
1547 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1548 session_type = SESSION_TYPE_RX;
1549 path_type = ADM_PATH_PLAYBACK;
1550 port_type = MSM_AFE_PORT_TYPE_RX;
1551 } else {
1552 session_type = SESSION_TYPE_TX;
1553 path_type = ADM_PATH_LIVE_REC;
1554 port_type = MSM_AFE_PORT_TYPE_TX;
1555 }
1556
1557 mutex_lock(&routing_lock);
1558
1559 payload.num_copps = 0; /* only RX needs to use payload */
1560 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1561 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301562 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301563
1564 /* re-enable EQ if active */
1565 msm_qti_pp_send_eq_values(fedai_id);
1566 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1567 if (!is_be_dai_extproc(i) &&
1568 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1569 (msm_bedais[i].active) &&
1570 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1571 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1572 /*
1573 * check if ADM needs to be configured with different
1574 * channel mapping than backend
1575 */
1576 if (!msm_bedais[i].adm_override_ch)
1577 channels = msm_bedais[i].channel;
1578 else
1579 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301580
1581 bits_per_sample = msm_routing_get_bit_width(
1582 msm_bedais[i].format);
1583
1584 app_type =
1585 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1586 if (app_type) {
1587 app_type_idx =
1588 msm_pcm_routing_get_app_type_idx(app_type);
1589 sample_rate =
1590 fe_dai_app_type_cfg[fedai_id][session_type][i]
1591 .sample_rate;
1592 bits_per_sample =
1593 app_type_cfg[app_type_idx].bit_width;
1594 } else
1595 sample_rate = msm_bedais[i].sample_rate;
1596
1597 acdb_dev_id =
1598 fe_dai_app_type_cfg[fedai_id][session_type][i]
1599 .acdb_dev_id;
1600 topology = msm_routing_get_adm_topology(fedai_id,
1601 session_type,
1602 i);
1603 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1604 sample_rate, channels, topology,
1605 perf_mode, bits_per_sample,
1606 app_type, acdb_dev_id);
1607 if ((copp_idx < 0) ||
1608 (copp_idx >= MAX_COPPS_PER_PORT)) {
1609 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001610 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301611 mutex_unlock(&routing_lock);
1612 return -EINVAL;
1613 }
1614 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1615 __func__, fedai_id, session_type, i);
1616 set_bit(copp_idx,
1617 &session_copp_map[fedai_id][session_type][i]);
1618
1619 if (msm_is_resample_needed(
1620 sample_rate,
1621 msm_bedais[i].sample_rate))
1622 adm_copp_mfc_cfg(
1623 msm_bedais[i].port_id, copp_idx,
1624 msm_bedais[i].sample_rate);
1625
1626 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1627 unsigned long copp =
1628 session_copp_map[fedai_id][session_type][i];
1629 if (test_bit(j, &copp)) {
1630 payload.port_id[num_copps] =
1631 msm_bedais[i].port_id;
1632 payload.copp_idx[num_copps] = j;
1633 payload.app_type[num_copps] =
1634 fe_dai_app_type_cfg
1635 [fedai_id][session_type]
1636 [i].app_type;
1637 payload.acdb_dev_id[num_copps] =
1638 fe_dai_app_type_cfg
1639 [fedai_id][session_type]
1640 [i].acdb_dev_id;
1641 payload.sample_rate[num_copps] =
1642 fe_dai_app_type_cfg
1643 [fedai_id][session_type]
1644 [i].sample_rate;
1645 num_copps++;
1646 }
1647 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301648 if (perf_mode == LEGACY_PCM_MODE)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301649 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301650 copp_idx, topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301651 }
1652 }
1653 if (num_copps) {
1654 payload.num_copps = num_copps;
1655 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1656 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1657 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1658 }
1659
1660 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1661 dspst_id, stream_type);
1662 mutex_unlock(&routing_lock);
1663 return ret;
1664}
1665
1666int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1667 int dspst_id, int stream_type,
1668 struct msm_pcm_routing_evt event_info)
1669{
1670 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1671 stream_type)) {
1672 pr_err("%s: failed to reg phy stream\n", __func__);
1673 return -EINVAL;
1674 }
1675
1676 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1677 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1678 else
1679 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1680 return 0;
1681}
1682
1683void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1684{
1685 int i, port_type, session_type, path_type, topology;
1686 struct msm_pcm_routing_fdai_data *fdai;
1687
1688 if (!is_mm_lsm_fe_id(fedai_id)) {
1689 /* bad ID assigned in machine driver */
1690 pr_err("%s: bad MM ID\n", __func__);
1691 return;
1692 }
1693
1694 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1695 port_type = MSM_AFE_PORT_TYPE_RX;
1696 session_type = SESSION_TYPE_RX;
1697 path_type = ADM_PATH_PLAYBACK;
1698 } else {
1699 port_type = MSM_AFE_PORT_TYPE_TX;
1700 session_type = SESSION_TYPE_TX;
1701 path_type = ADM_PATH_LIVE_REC;
1702 }
1703
1704 mutex_lock(&routing_lock);
1705 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1706 if (!is_be_dai_extproc(i) &&
1707 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1708 (msm_bedais[i].active) &&
1709 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1710 int idx;
1711 unsigned long copp =
1712 session_copp_map[fedai_id][session_type][i];
1713 fdai = &fe_dai_map[fedai_id][session_type];
1714
1715 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1716 if (test_bit(idx, &copp))
1717 break;
1718
1719 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1720 pr_debug("%s: copp idx is invalid, exiting\n",
1721 __func__);
1722 continue;
1723 }
1724 topology = adm_get_topology_for_port_copp_idx(
1725 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001726 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301727 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1728 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1729 __func__, copp, fedai_id, session_type, i);
1730 clear_bit(idx,
1731 &session_copp_map[fedai_id][session_type][i]);
1732 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1733 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1734 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301735 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301736 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1737 topology);
1738 }
1739 }
1740
1741 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1742 fe_dai_map[fedai_id][session_type].be_srate = 0;
1743 mutex_unlock(&routing_lock);
1744}
1745
1746/* Check if FE/BE route is set */
1747static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1748{
1749 bool rc = false;
1750
1751 if (!is_mm_lsm_fe_id(fe_id)) {
1752 /* recheck FE ID in the mixer control defined in this file */
1753 pr_err("%s: bad MM ID\n", __func__);
1754 return rc;
1755 }
1756
1757 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1758 rc = true;
1759
1760 return rc;
1761}
1762
1763static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1764{
1765 int session_type, path_type, topology;
1766 u32 channels, sample_rate;
1767 uint16_t bits_per_sample = 16;
1768 struct msm_pcm_routing_fdai_data *fdai;
1769 uint32_t passthr_mode;
1770 bool is_lsm;
1771
1772 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1773
1774 if (!is_mm_lsm_fe_id(val)) {
1775 /* recheck FE ID in the mixer control defined in this file */
1776 pr_err("%s: bad MM ID\n", __func__);
1777 return;
1778 }
1779
1780 if (!route_check_fe_id_adm_support(val)) {
1781 /* ignore adm open if not supported for fe_id */
1782 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1783 return;
1784 }
1785
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301786 session_type =
1787 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1788 SESSION_TYPE_RX : SESSION_TYPE_TX;
1789 fdai = &fe_dai_map[val][session_type];
1790 passthr_mode = fdai->passthr_mode;
1791 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301792 if (passthr_mode != LEGACY_PCM)
1793 path_type = ADM_PATH_COMPRESSED_RX;
1794 else
1795 path_type = ADM_PATH_PLAYBACK;
1796 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001797 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301798 path_type = ADM_PATH_COMPRESSED_TX;
1799 else
1800 path_type = ADM_PATH_LIVE_REC;
1801 }
1802 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1803 (val <= MSM_FRONTEND_DAI_LSM8);
1804
1805 mutex_lock(&routing_lock);
1806 if (set) {
1807 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1808 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1809 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1810 voc_start_playback(set, msm_bedais[reg].port_id);
1811
1812 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301813 if (msm_bedais[reg].active && fdai->strm_id !=
1814 INVALID_SESSION) {
1815 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1816 /*
1817 * check if ADM needs to be configured with different
1818 * channel mapping than backend
1819 */
1820 if (!msm_bedais[reg].adm_override_ch)
1821 channels = msm_bedais[reg].channel;
1822 else
1823 channels = msm_bedais[reg].adm_override_ch;
1824 if (session_type == SESSION_TYPE_TX &&
1825 fdai->be_srate &&
1826 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1827 pr_debug("%s: flush strm %d diff BE rates\n",
1828 __func__, fdai->strm_id);
1829
1830 if (fdai->event_info.event_func)
1831 fdai->event_info.event_func(
1832 MSM_PCM_RT_EVT_BUF_RECFG,
1833 fdai->event_info.priv_data);
1834 fdai->be_srate = 0; /* might not need it */
1835 }
1836
1837 bits_per_sample = msm_routing_get_bit_width(
1838 msm_bedais[reg].format);
1839
1840 app_type =
1841 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1842 if (app_type && is_lsm) {
1843 app_type_idx =
1844 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1845 sample_rate =
1846 fe_dai_app_type_cfg[val][session_type][reg]
1847 .sample_rate;
1848 bits_per_sample =
1849 lsm_app_type_cfg[app_type_idx].bit_width;
1850 } else if (app_type) {
1851 app_type_idx =
1852 msm_pcm_routing_get_app_type_idx(app_type);
1853 sample_rate =
1854 fe_dai_app_type_cfg[val][session_type][reg]
1855 .sample_rate;
1856 bits_per_sample =
1857 app_type_cfg[app_type_idx].bit_width;
1858 } else
1859 sample_rate = msm_bedais[reg].sample_rate;
1860
1861 topology = msm_routing_get_adm_topology(val,
1862 session_type,
1863 reg);
1864 acdb_dev_id =
1865 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1866 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1867 sample_rate, channels, topology,
1868 fdai->perf_mode, bits_per_sample,
1869 app_type, acdb_dev_id);
1870 if ((copp_idx < 0) ||
1871 (copp_idx >= MAX_COPPS_PER_PORT)) {
1872 pr_err("%s: adm open failed\n", __func__);
1873 mutex_unlock(&routing_lock);
1874 return;
1875 }
1876 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1877 __func__, val, session_type, reg);
1878 set_bit(copp_idx,
1879 &session_copp_map[val][session_type][reg]);
1880
1881 if (msm_is_resample_needed(
1882 sample_rate,
1883 msm_bedais[reg].sample_rate))
1884 adm_copp_mfc_cfg(
1885 msm_bedais[reg].port_id, copp_idx,
1886 msm_bedais[reg].sample_rate);
1887
1888 if (session_type == SESSION_TYPE_RX &&
1889 fdai->event_info.event_func)
1890 fdai->event_info.event_func(
1891 MSM_PCM_RT_EVT_DEVSWITCH,
1892 fdai->event_info.priv_data);
1893
1894 msm_pcm_routing_build_matrix(val, session_type,
1895 path_type,
1896 fdai->perf_mode,
1897 passthr_mode);
1898 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1899 (passthr_mode == LEGACY_PCM))
1900 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1901 copp_idx, topology,
1902 channels);
1903 }
1904 } else {
1905 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1906 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1907 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1908 voc_start_playback(set, msm_bedais[reg].port_id);
1909 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301910 if (msm_bedais[reg].active && fdai->strm_id !=
1911 INVALID_SESSION) {
1912 int idx;
1913 int port_id;
1914 unsigned long copp =
1915 session_copp_map[val][session_type][reg];
1916 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1917 if (test_bit(idx, &copp))
1918 break;
1919
1920 port_id = msm_bedais[reg].port_id;
1921 topology = adm_get_topology_for_port_copp_idx(port_id,
1922 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001923 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301924 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1925 idx);
1926 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1927 __func__, copp, val, session_type, reg,
1928 topology);
1929 clear_bit(idx,
1930 &session_copp_map[val][session_type][reg]);
1931 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1932 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1933 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1934 (passthr_mode == LEGACY_PCM))
1935 msm_pcm_routing_deinit_pp(
1936 msm_bedais[reg].port_id,
1937 topology);
1938 msm_pcm_routing_build_matrix(val, session_type,
1939 path_type,
1940 fdai->perf_mode,
1941 passthr_mode);
1942 }
1943 }
1944 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1945 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1946 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1947
1948 mutex_unlock(&routing_lock);
1949}
1950
1951static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1952 struct snd_ctl_elem_value *ucontrol)
1953{
1954 struct soc_mixer_control *mc =
1955 (struct soc_mixer_control *)kcontrol->private_value;
1956
Meng Wang05d5e9a2018-03-28 16:45:03 +08001957 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301958 ucontrol->value.integer.value[0] = 1;
1959 else
1960 ucontrol->value.integer.value[0] = 0;
1961
Meng Wang05d5e9a2018-03-28 16:45:03 +08001962 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301963 ucontrol->value.integer.value[0]);
1964
1965 return 0;
1966}
1967
1968static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1969 struct snd_ctl_elem_value *ucontrol)
1970{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301971 struct snd_soc_dapm_widget *widget =
1972 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301973 struct soc_mixer_control *mc =
1974 (struct soc_mixer_control *)kcontrol->private_value;
1975 struct snd_soc_dapm_update *update = NULL;
1976
1977 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001978 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1979 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301980 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1981 update);
1982 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001983 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1984 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301985 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1986 update);
1987 }
1988
1989 return 1;
1990}
1991
1992static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
1993 struct snd_ctl_elem_value *ucontrol)
1994{
1995 struct soc_mixer_control *mc =
1996 (struct soc_mixer_control *)kcontrol->private_value;
1997
Meng Wang05d5e9a2018-03-28 16:45:03 +08001998 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301999 ucontrol->value.integer.value[0] = 1;
2000 else
2001 ucontrol->value.integer.value[0] = 0;
2002
Meng Wang05d5e9a2018-03-28 16:45:03 +08002003 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302004 ucontrol->value.integer.value[0]);
2005
2006 return 0;
2007}
2008
2009static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2010 struct snd_ctl_elem_value *ucontrol)
2011{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302012 struct snd_soc_dapm_widget *widget =
2013 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302014 struct soc_mixer_control *mc =
2015 (struct soc_mixer_control *)kcontrol->private_value;
2016 struct snd_soc_dapm_update *update = NULL;
2017
Meng Wang05d5e9a2018-03-28 16:45:03 +08002018 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302019 ucontrol->value.integer.value[0]);
2020
2021 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002022 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2023 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302024 snd_soc_dapm_mixer_update_power(widget->dapm,
2025 kcontrol, 1, update);
2026 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002027 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2028 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302029 snd_soc_dapm_mixer_update_power(widget->dapm,
2030 kcontrol, 0, update);
2031 }
2032
2033 return 1;
2034}
2035
2036static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2037{
2038 u32 session_id = 0;
2039 u16 path_type;
2040 struct media_format_info voc_be_media_format;
2041
2042 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2043
2044 session_id = msm_pcm_routing_get_voc_sessionid(val);
2045
2046 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2047 __func__, val, session_id);
2048
2049 mutex_lock(&routing_lock);
2050
2051 if (set)
2052 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2053 else
2054 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2055
2056 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2057 afe_get_port_type(msm_bedais[reg].port_id) ==
2058 MSM_AFE_PORT_TYPE_RX) {
2059 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2060 __func__, set, msm_bedais[reg].port_id);
2061 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2062 }
2063
2064 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2065 MSM_AFE_PORT_TYPE_RX)
2066 path_type = RX_PATH;
2067 else
2068 path_type = TX_PATH;
2069
2070 if (set) {
2071 if (msm_bedais[reg].active) {
2072 voc_set_route_flag(session_id, path_type, 1);
2073
2074 memset(&voc_be_media_format, 0,
2075 sizeof(struct media_format_info));
2076
2077 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2078 voc_be_media_format.num_channels =
2079 msm_bedais[reg].channel;
2080 voc_be_media_format.sample_rate =
2081 msm_bedais[reg].sample_rate;
2082 voc_be_media_format.bits_per_sample =
2083 msm_bedais[reg].format;
2084 /* Defaulting this to 1 for voice call usecases */
2085 voc_be_media_format.channel_mapping[0] = 1;
2086
2087 voc_set_device_config(session_id, path_type,
2088 &voc_be_media_format);
2089
2090 if (voc_get_route_flag(session_id, TX_PATH) &&
2091 voc_get_route_flag(session_id, RX_PATH))
2092 voc_enable_device(session_id);
2093 } else {
2094 pr_debug("%s BE is not active\n", __func__);
2095 }
2096 } else {
2097 voc_set_route_flag(session_id, path_type, 0);
2098 voc_disable_device(session_id);
2099 }
2100
2101 mutex_unlock(&routing_lock);
2102
2103}
2104
2105static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2106 struct snd_ctl_elem_value *ucontrol)
2107{
2108 struct soc_mixer_control *mc =
2109 (struct soc_mixer_control *)kcontrol->private_value;
2110
2111 mutex_lock(&routing_lock);
2112
Meng Wang05d5e9a2018-03-28 16:45:03 +08002113 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302114 ucontrol->value.integer.value[0] = 1;
2115 else
2116 ucontrol->value.integer.value[0] = 0;
2117
2118 mutex_unlock(&routing_lock);
2119
Meng Wang05d5e9a2018-03-28 16:45:03 +08002120 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302121 ucontrol->value.integer.value[0]);
2122
2123 return 0;
2124}
2125
2126static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2127 struct snd_ctl_elem_value *ucontrol)
2128{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302129 struct snd_soc_dapm_widget *widget =
2130 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302131 struct soc_mixer_control *mc =
2132 (struct soc_mixer_control *)kcontrol->private_value;
2133 struct snd_soc_dapm_update *update = NULL;
2134
2135 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002136 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302137 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2138 update);
2139 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002140 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302141 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2142 update);
2143 }
2144
2145 return 1;
2146}
2147
2148static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2149 struct snd_ctl_elem_value *ucontrol)
2150{
2151 struct soc_mixer_control *mc =
2152 (struct soc_mixer_control *)kcontrol->private_value;
2153
2154 mutex_lock(&routing_lock);
2155
Meng Wang05d5e9a2018-03-28 16:45:03 +08002156 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302157 ucontrol->value.integer.value[0] = 1;
2158 else
2159 ucontrol->value.integer.value[0] = 0;
2160
2161 mutex_unlock(&routing_lock);
2162
Meng Wang05d5e9a2018-03-28 16:45:03 +08002163 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302164 ucontrol->value.integer.value[0]);
2165
2166 return 0;
2167}
2168
2169static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2170 struct snd_ctl_elem_value *ucontrol)
2171{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302172 struct snd_soc_dapm_widget *widget =
2173 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302174 struct soc_mixer_control *mc =
2175 (struct soc_mixer_control *)kcontrol->private_value;
2176 struct snd_soc_dapm_update *update = NULL;
2177
2178 if (ucontrol->value.integer.value[0]) {
2179 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002180 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302181 mutex_unlock(&routing_lock);
2182
2183 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2184 update);
2185 } else {
2186 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002187 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302188 mutex_unlock(&routing_lock);
2189
2190 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2191 update);
2192 }
2193
Meng Wang05d5e9a2018-03-28 16:45:03 +08002194 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302195 ucontrol->value.integer.value[0]);
2196
2197 return 1;
2198}
2199
2200/*
2201 * Return the mapping between port ID and backend ID to enable the AFE callback
2202 * to determine the acdb_dev_id from the port id
2203 */
2204int msm_pcm_get_be_id_from_port_id(int port_id)
2205{
2206 int i;
2207 int be_id = -EINVAL;
2208
2209 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2210 if (msm_bedais[i].port_id == port_id) {
2211 be_id = i;
2212 break;
2213 }
2214 }
2215
2216 return be_id;
2217}
2218
2219/*
2220 * Return the registered dev_acdb_id given a port ID to enable identifying the
2221 * correct AFE calibration information by comparing the header information.
2222 */
2223static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2224{
2225 int acdb_id = -EINVAL;
2226 int i = 0;
2227 int session;
2228 int port_type = afe_get_port_type(port_id);
2229 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2230
2231 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2232 __func__, port_id, be_id, port_type);
2233
2234 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2235 session = SESSION_TYPE_TX;
2236 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2237 session = SESSION_TYPE_RX;
2238 } else {
2239 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2240 acdb_id = -EINVAL;
2241 goto exit;
2242 }
2243
2244 if (be_id < 0) {
2245 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2246 goto exit;
2247 }
2248
2249 mutex_lock(&routing_lock);
2250 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2251 MSM_FRONTEND_DAI_MAX);
2252 if (i < MSM_FRONTEND_DAI_MAX)
2253 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2254
2255 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2256 __func__, i, session, be_id, acdb_id);
2257 mutex_unlock(&routing_lock);
2258exit:
2259 return acdb_id;
2260}
2261
2262static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2263 struct snd_ctl_elem_value *ucontrol)
2264{
2265 ucontrol->value.integer.value[0] = fm_switch_enable;
2266 pr_debug("%s: FM Switch enable %ld\n", __func__,
2267 ucontrol->value.integer.value[0]);
2268 return 0;
2269}
2270
2271static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2272 struct snd_ctl_elem_value *ucontrol)
2273{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302274 struct snd_soc_dapm_widget *widget =
2275 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302276 struct snd_soc_dapm_update *update = NULL;
2277
2278 pr_debug("%s: FM Switch enable %ld\n", __func__,
2279 ucontrol->value.integer.value[0]);
2280 if (ucontrol->value.integer.value[0])
2281 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2282 update);
2283 else
2284 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2285 update);
2286 fm_switch_enable = ucontrol->value.integer.value[0];
2287 return 1;
2288}
2289
2290static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2291 struct snd_ctl_elem_value *ucontrol)
2292{
2293 ucontrol->value.integer.value[0] = hfp_switch_enable;
2294 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2295 ucontrol->value.integer.value[0]);
2296 return 0;
2297}
2298
2299static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2300 struct snd_ctl_elem_value *ucontrol)
2301{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302302 struct snd_soc_dapm_widget *widget =
2303 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302304 struct snd_soc_dapm_update *update = NULL;
2305
2306 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2307 ucontrol->value.integer.value[0]);
2308 if (ucontrol->value.integer.value[0])
2309 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2310 1, update);
2311 else
2312 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2313 0, update);
2314 hfp_switch_enable = ucontrol->value.integer.value[0];
2315 return 1;
2316}
2317
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002318static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2319 struct snd_ctl_elem_value *ucontrol)
2320{
2321 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2322 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2323 ucontrol->value.integer.value[0]);
2324 return 0;
2325}
2326
2327static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2328 struct snd_ctl_elem_value *ucontrol)
2329{
2330 struct snd_soc_dapm_widget *widget =
2331 snd_soc_dapm_kcontrol_widget(kcontrol);
2332 struct snd_soc_dapm_update *update = NULL;
2333
2334 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2335 ucontrol->value.integer.value[0]);
2336 a2dp_switch_enable = ucontrol->value.integer.value[0];
2337 if (a2dp_switch_enable)
2338 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2339 1, update);
2340 else
2341 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2342 0, update);
2343 return 1;
2344}
2345
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302346static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2347 struct snd_ctl_elem_value *ucontrol)
2348{
2349 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2350 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2351 ucontrol->value.integer.value[0]);
2352 return 0;
2353}
2354
2355static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2356 struct snd_ctl_elem_value *ucontrol)
2357{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302358 struct snd_soc_dapm_widget *widget =
2359 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302360 struct snd_soc_dapm_update *update = NULL;
2361
2362 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2363 ucontrol->value.integer.value[0]);
2364 if (ucontrol->value.integer.value[0])
2365 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2366 update);
2367 else
2368 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2369 update);
2370 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2371 return 1;
2372}
2373
2374static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2375 struct snd_ctl_elem_value *ucontrol)
2376{
2377 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2378 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2379 ucontrol->value.integer.value[0]);
2380 return 0;
2381}
2382
2383static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2384 struct snd_ctl_elem_value *ucontrol)
2385{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302386 struct snd_soc_dapm_widget *widget =
2387 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302388 struct snd_soc_dapm_update *update = NULL;
2389
2390 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2391 ucontrol->value.integer.value[0]);
2392 if (ucontrol->value.integer.value[0])
2393 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2394 update);
2395 else
2396 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2397 update);
2398 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2399 return 1;
2400}
2401
2402static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2403 struct snd_ctl_elem_value *ucontrol)
2404{
2405 ucontrol->value.integer.value[0] = usb_switch_enable;
2406 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2407 ucontrol->value.integer.value[0]);
2408 return 0;
2409}
2410
2411static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2412 struct snd_ctl_elem_value *ucontrol)
2413{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302414 struct snd_soc_dapm_widget *widget =
2415 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302416 struct snd_soc_dapm_update *update = NULL;
2417
2418 pr_debug("%s: USB Switch enable %ld\n", __func__,
2419 ucontrol->value.integer.value[0]);
2420 if (ucontrol->value.integer.value[0])
2421 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2422 1, update);
2423 else
2424 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2425 0, update);
2426 usb_switch_enable = ucontrol->value.integer.value[0];
2427 return 1;
2428}
2429
2430static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2431 struct snd_ctl_elem_value *ucontrol)
2432{
2433 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2434 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2435 ucontrol->value.integer.value[0]);
2436 return 0;
2437}
2438
2439static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2440 struct snd_ctl_elem_value *ucontrol)
2441{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302442 struct snd_soc_dapm_widget *widget =
2443 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302444 struct snd_soc_dapm_update *update = NULL;
2445
2446 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2447 ucontrol->value.integer.value[0]);
2448 if (ucontrol->value.integer.value[0])
2449 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2450 update);
2451 else
2452 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2453 update);
2454 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2455 return 1;
2456}
2457
2458static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2459 struct snd_ctl_elem_value *ucontrol)
2460{
2461 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2462 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2463 ucontrol->value.integer.value[0]);
2464 return 0;
2465}
2466
2467static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2468 struct snd_ctl_elem_value *ucontrol)
2469{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302470 struct snd_soc_dapm_widget *widget =
2471 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302472 struct snd_soc_dapm_update *update = NULL;
2473
2474 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2475 ucontrol->value.integer.value[0]);
2476 if (ucontrol->value.integer.value[0])
2477 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2478 update);
2479 else
2480 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2481 update);
2482 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2483 return 1;
2484}
2485
2486static int msm_routing_get_tert_mi2s_switch_mixer(
2487 struct snd_kcontrol *kcontrol,
2488 struct snd_ctl_elem_value *ucontrol)
2489{
2490 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2491 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2492 ucontrol->value.integer.value[0]);
2493 return 0;
2494}
2495
2496static int msm_routing_put_tert_mi2s_switch_mixer(
2497 struct snd_kcontrol *kcontrol,
2498 struct snd_ctl_elem_value *ucontrol)
2499{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302500 struct snd_soc_dapm_widget *widget =
2501 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302502 struct snd_soc_dapm_update *update = NULL;
2503
2504 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2505 ucontrol->value.integer.value[0]);
2506 if (ucontrol->value.integer.value[0])
2507 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2508 update);
2509 else
2510 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2511 update);
2512 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2513 return 1;
2514}
2515
2516static int msm_routing_get_quat_mi2s_switch_mixer(
2517 struct snd_kcontrol *kcontrol,
2518 struct snd_ctl_elem_value *ucontrol)
2519{
2520 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2521 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2522 ucontrol->value.integer.value[0]);
2523 return 0;
2524}
2525
2526static int msm_routing_put_quat_mi2s_switch_mixer(
2527 struct snd_kcontrol *kcontrol,
2528 struct snd_ctl_elem_value *ucontrol)
2529{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302530 struct snd_soc_dapm_widget *widget =
2531 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302532 struct snd_soc_dapm_update *update = NULL;
2533
2534 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2535 ucontrol->value.integer.value[0]);
2536 if (ucontrol->value.integer.value[0])
2537 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2538 update);
2539 else
2540 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2541 update);
2542 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2543 return 1;
2544}
2545
Rohit Kumara5077932017-09-10 22:05:05 +05302546static int msm_routing_get_quin_mi2s_switch_mixer(
2547 struct snd_kcontrol *kcontrol,
2548 struct snd_ctl_elem_value *ucontrol)
2549{
2550 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2551 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2552 ucontrol->value.integer.value[0]);
2553 return 0;
2554}
2555
2556static int msm_routing_put_quin_mi2s_switch_mixer(
2557 struct snd_kcontrol *kcontrol,
2558 struct snd_ctl_elem_value *ucontrol)
2559{
2560 struct snd_soc_dapm_widget *widget =
2561 snd_soc_dapm_kcontrol_widget(kcontrol);
2562 struct snd_soc_dapm_update *update = NULL;
2563
2564 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2565 ucontrol->value.integer.value[0]);
2566 if (ucontrol->value.integer.value[0])
2567 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2568 update);
2569 else
2570 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2571 update);
2572 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2573 return 1;
2574}
2575
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302576static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2577 struct snd_ctl_elem_value *ucontrol)
2578{
2579 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2580 pr_debug("%s: FM Switch enable %ld\n", __func__,
2581 ucontrol->value.integer.value[0]);
2582 return 0;
2583}
2584
2585static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2586 struct snd_ctl_elem_value *ucontrol)
2587{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302588 struct snd_soc_dapm_widget *widget =
2589 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302590 struct snd_soc_dapm_update *update = NULL;
2591
2592 pr_debug("%s: FM Switch enable %ld\n", __func__,
2593 ucontrol->value.integer.value[0]);
2594 if (ucontrol->value.integer.value[0])
2595 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2596 update);
2597 else
2598 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2599 update);
2600 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2601 return 1;
2602}
2603
2604static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2605 struct snd_ctl_elem_value *ucontrol)
2606{
2607 ucontrol->value.integer.value[0] = lsm_port_index;
2608 return 0;
2609}
2610
2611static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2612 struct snd_ctl_elem_value *ucontrol)
2613{
2614 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2615 int mux = ucontrol->value.enumerated.item[0];
2616 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2617
2618 if (mux >= e->items) {
2619 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2620 return -EINVAL;
2621 }
2622
2623 pr_debug("%s: LSM enable %ld\n", __func__,
2624 ucontrol->value.integer.value[0]);
2625 switch (ucontrol->value.integer.value[0]) {
2626 case 1:
2627 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2628 break;
2629 case 2:
2630 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2631 break;
2632 case 3:
2633 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2634 break;
2635 case 4:
2636 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2637 break;
2638 case 5:
2639 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2640 break;
2641 case 6:
2642 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2643 break;
2644 case 7:
2645 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2646 break;
2647 case 8:
2648 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2649 break;
2650 case 9:
2651 lsm_port = ADM_LSM_PORT_ID;
2652 break;
2653 case 10:
2654 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2655 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302656 case 11:
2657 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2658 break;
2659 case 12:
2660 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2661 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302662 case 13:
2663 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2664 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302665 default:
2666 pr_err("Default lsm port");
2667 break;
2668 }
2669 set_lsm_port(lsm_port);
2670 lsm_port_index = ucontrol->value.integer.value[0];
2671
2672 return 0;
2673}
2674
2675static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2676 struct snd_ctl_elem_value *ucontrol)
2677{
2678 int i;
2679 u16 port_id;
2680 enum afe_mad_type mad_type;
2681
2682 pr_debug("%s: enter\n", __func__);
2683 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2684 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2685 strlen(lsm_port_text[i])))
2686 break;
2687
2688 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2689 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2690 return -EINVAL;
2691 }
2692
2693 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2694
2695 /*Check for Tertiary/Quaternary/INT3 TX port*/
2696 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2697 strlen(lsm_port_text[7])))
2698 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2699
2700 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2701 strlen(lsm_port_text[8])))
2702 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2703
2704 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2705 strlen(lsm_port_text[10])))
2706 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2707
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302708 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2709 strlen(lsm_port_text[13])))
2710 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2711
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302712 mad_type = afe_port_get_mad_type(port_id);
2713 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2714 mad_type);
2715 switch (mad_type) {
2716 case MAD_HW_NONE:
2717 ucontrol->value.integer.value[0] = MADNONE;
2718 break;
2719 case MAD_HW_AUDIO:
2720 ucontrol->value.integer.value[0] = MADAUDIO;
2721 break;
2722 case MAD_HW_BEACON:
2723 ucontrol->value.integer.value[0] = MADBEACON;
2724 break;
2725 case MAD_HW_ULTRASOUND:
2726 ucontrol->value.integer.value[0] = MADULTRASOUND;
2727 break;
2728 case MAD_SW_AUDIO:
2729 ucontrol->value.integer.value[0] = MADSWAUDIO;
2730 break;
2731 default:
2732 WARN(1, "Unknown\n");
2733 return -EINVAL;
2734 }
2735 return 0;
2736}
2737
2738static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2739 struct snd_ctl_elem_value *ucontrol)
2740{
2741 int i;
2742 u16 port_id;
2743 enum afe_mad_type mad_type;
2744
2745 pr_debug("%s: enter\n", __func__);
2746 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2747 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2748 strlen(lsm_port_text[i])))
2749 break;
2750
2751 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2752 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2753 return -EINVAL;
2754 }
2755
2756 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2757 switch (ucontrol->value.integer.value[0]) {
2758 case MADNONE:
2759 mad_type = MAD_HW_NONE;
2760 break;
2761 case MADAUDIO:
2762 mad_type = MAD_HW_AUDIO;
2763 break;
2764 case MADBEACON:
2765 mad_type = MAD_HW_BEACON;
2766 break;
2767 case MADULTRASOUND:
2768 mad_type = MAD_HW_ULTRASOUND;
2769 break;
2770 case MADSWAUDIO:
2771 mad_type = MAD_SW_AUDIO;
2772 break;
2773 default:
2774 WARN(1, "Unknown\n");
2775 return -EINVAL;
2776 }
2777
2778 /*Check for Tertiary/Quaternary/INT3 TX port*/
2779 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2780 strlen(lsm_port_text[7])))
2781 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2782
2783 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2784 strlen(lsm_port_text[8])))
2785 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2786
2787 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2788 strlen(lsm_port_text[10])))
2789 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2790
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302791 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2792 strlen(lsm_port_text[13])))
2793 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2794
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302795 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2796 mad_type);
2797 return afe_port_set_mad_type(port_id, mad_type);
2798}
2799
2800static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2801
2802static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2803 adm_override_chs_text);
2804
2805static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2806{
2807 int backend_id;
2808
2809 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2810 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2811 } else {
2812 pr_err("%s: unsupported backend id: %s",
2813 __func__, kcontrol->id.name);
2814 return -EINVAL;
2815 }
2816
2817 return backend_id;
2818}
2819static int msm_routing_adm_channel_config_get(
2820 struct snd_kcontrol *kcontrol,
2821 struct snd_ctl_elem_value *ucontrol)
2822{
2823 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2824
2825 if (backend_id >= 0) {
2826 mutex_lock(&routing_lock);
2827 ucontrol->value.integer.value[0] =
2828 msm_bedais[backend_id].adm_override_ch;
2829 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2830 ucontrol->value.integer.value[0], backend_id);
2831 mutex_unlock(&routing_lock);
2832 }
2833
2834 return 0;
2835}
2836
2837static int msm_routing_adm_channel_config_put(
2838 struct snd_kcontrol *kcontrol,
2839 struct snd_ctl_elem_value *ucontrol)
2840{
2841 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2842
2843 if (backend_id >= 0) {
2844 mutex_lock(&routing_lock);
2845 msm_bedais[backend_id].adm_override_ch =
2846 ucontrol->value.integer.value[0];
2847 pr_debug("%s:updating BE :%d adm channels: %d\n",
2848 __func__, backend_id,
2849 msm_bedais[backend_id].adm_override_ch);
2850 mutex_unlock(&routing_lock);
2851 }
2852
2853 return 0;
2854}
2855
2856static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2857 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2858 msm_routing_adm_channel_config_get,
2859 msm_routing_adm_channel_config_put),
2860};
2861
2862static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2863 struct snd_ctl_elem_value *ucontrol)
2864{
2865
2866 mutex_lock(&routing_lock);
2867 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2868 mutex_unlock(&routing_lock);
2869 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2870 ucontrol->value.integer.value[0]);
2871 return 0;
2872};
2873
2874static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2875 struct snd_ctl_elem_value *ucontrol)
2876{
2877 struct aanc_data aanc_info;
2878
2879 mutex_lock(&routing_lock);
2880 memset(&aanc_info, 0x00, sizeof(aanc_info));
2881 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2882 ucontrol->value.integer.value[0]);
2883 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2884 if (ucontrol->value.integer.value[0] == 0) {
2885 aanc_info.aanc_active = false;
2886 aanc_info.aanc_tx_port = 0;
2887 aanc_info.aanc_rx_port = 0;
2888 } else {
2889 aanc_info.aanc_active = true;
2890 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2891 aanc_info.aanc_tx_port =
2892 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2893 }
2894 afe_set_aanc_info(&aanc_info);
2895 mutex_unlock(&routing_lock);
2896 return 0;
2897};
2898static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2899 struct snd_ctl_elem_value *ucontrol)
2900{
2901 int idx = 0, shift = 0;
2902 struct soc_mixer_control *mc =
2903 (struct soc_mixer_control *)kcontrol->private_value;
2904
Meng Wang05d5e9a2018-03-28 16:45:03 +08002905 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2906 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302907
2908 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2909 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2910 return -EINVAL;
2911 }
2912
2913 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002914 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302915 ucontrol->value.integer.value[0] = 1;
2916 else
2917 ucontrol->value.integer.value[0] = 0;
2918
Meng Wang05d5e9a2018-03-28 16:45:03 +08002919 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302920 ucontrol->value.integer.value[0]);
2921
2922 return 0;
2923}
2924
2925static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2926 struct snd_ctl_elem_value *ucontrol)
2927{
2928 int idx = 0, shift = 0;
2929 struct soc_mixer_control *mc =
2930 (struct soc_mixer_control *)kcontrol->private_value;
2931
Meng Wang05d5e9a2018-03-28 16:45:03 +08002932 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2933 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302934
2935 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2936 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2937 return -EINVAL;
2938 }
2939
Meng Wang05d5e9a2018-03-28 16:45:03 +08002940 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2941 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302942 ucontrol->value.integer.value[0], idx, shift);
2943
2944 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002945 afe_loopback(1, msm_bedais[mc->shift].port_id,
2946 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302947 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002948 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302949 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002950 afe_loopback(0, msm_bedais[mc->shift].port_id,
2951 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302952 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002953 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302954 }
2955
2956 return 1;
2957}
2958
2959static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2960 struct snd_ctl_elem_value *ucontrol)
2961{
2962 u16 fe_id = 0;
2963
2964 fe_id = ((struct soc_mixer_control *)
2965 kcontrol->private_value)->shift;
2966 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2967 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2968 return -EINVAL;
2969 }
2970
2971 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2972
2973 return 0;
2974}
2975
2976static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2977 struct snd_ctl_elem_value *ucontrol)
2978{
2979 u16 fe_id = 0;
2980
2981 fe_id = ((struct soc_mixer_control *)
2982 kcontrol->private_value)->shift;
2983 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2984 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2985 return -EINVAL;
2986 }
2987
2988 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2989
2990 return 1;
2991}
2992
2993static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
2994 struct snd_ctl_elem_value *ucontrol)
2995{
2996 u16 fe_id = 0;
2997
2998 fe_id = ((struct soc_multi_mixer_control *)
2999 kcontrol->private_value)->shift;
3000 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3001 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3002 return -EINVAL;
3003 }
3004
3005 ucontrol->value.integer.value[0] =
3006 channel_mixer[fe_id].output_channel;
3007 return 0;
3008}
3009
3010static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3011 struct snd_ctl_elem_value *ucontrol)
3012{
3013 u16 fe_id = 0;
3014
3015 fe_id = ((struct soc_multi_mixer_control *)
3016 kcontrol->private_value)->shift;
3017 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3018 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3019 return -EINVAL;
3020 }
3021
3022 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3023 fe_id,
3024 (unsigned int)(ucontrol->value.integer.value[0]));
3025 channel_mixer[fe_id].output_channel =
3026 (unsigned int)(ucontrol->value.integer.value[0]);
3027
3028 return 1;
3029}
3030
3031static const char *const ch_mixer[] = {"Disable", "Enable"};
3032
3033/* If new backend is added, need update this array */
3034static const char *const be_name[] = {
3035"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3036"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3037"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3038"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3039"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3040"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3041"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3042"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3043"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3044"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3045"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3046"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003047"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303048"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3049"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3050"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3051"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3052"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3053"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3054"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3055"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3056"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3057"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3058"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3059"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3060"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3061"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3062"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3063"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3064"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303065"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3066"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3067"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3068"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003069"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303070"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303071"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303072"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3073"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3074"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303075"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3076"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003077"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303078"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3079"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3080"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3081"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3082"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303083};
3084
3085static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3086 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3087static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3088 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3089static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3090 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3091static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3092 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3093
3094static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3095 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3096static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3097 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3098static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3099 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3100static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3101 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3102static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3103 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3104static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3105 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3106static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3107 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3108static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3109 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3110
3111static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3112 unsigned int channels,
3113 unsigned int items, const char *const names[])
3114{
3115 if (uinfo->value.enumerated.item >= items)
3116 uinfo->value.enumerated.item = items - 1;
3117
3118 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3119 sizeof(uinfo->value.enumerated.name),
3120 "ALSA: too long item name '%s'\n",
3121 names[uinfo->value.enumerated.item]);
3122 strlcpy(uinfo->value.enumerated.name,
3123 names[uinfo->value.enumerated.item],
3124 sizeof(uinfo->value.enumerated.name));
3125 return 0;
3126}
3127
3128static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3129 struct snd_ctl_elem_info *uinfo)
3130{
3131 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3132
3133 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3134 uinfo->count = 1;
3135
3136 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3137 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3138
3139 return 0;
3140}
3141static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3142 struct snd_ctl_elem_value *ucontrol)
3143{
3144 u16 fe_id = 0;
3145
3146 fe_id = ((struct soc_enum *)
3147 kcontrol->private_value)->shift_l;
3148 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3149 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3150 return -EINVAL;
3151 }
3152
3153 pr_debug("%s: FE %d %s\n", __func__,
3154 fe_id,
3155 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3156 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3157 return 0;
3158}
3159
3160static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3161 struct snd_ctl_elem_value *ucontrol)
3162{
3163 u16 fe_id = 0;
3164
3165 fe_id = ((struct soc_enum *)
3166 kcontrol->private_value)->shift_l;
3167 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3168 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3169 return -EINVAL;
3170 }
3171
3172 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3173 pr_debug("%s: %s FE %d\n", __func__,
3174 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3175 fe_id);
3176 return 0;
3177}
3178
3179static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3180 struct snd_ctl_elem_info *uinfo)
3181{
3182 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3183
3184 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3185 uinfo->count = 1;
3186
3187 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3188 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3189
3190 return 0;
3191}
3192
3193static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3194 struct snd_ctl_elem_value *ucontrol)
3195{
3196 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3197 u16 fe_id = 0, in_ch = 0;
3198
3199 fe_id = e->shift_l;
3200 in_ch = e->shift_r;
3201 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3202 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3203 return -EINVAL;
3204 }
3205 if (in_ch >= ADM_MAX_CHANNELS) {
3206 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3207 return -EINVAL;
3208 }
3209
3210 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3211 return 1;
3212}
3213
3214static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3215 struct snd_ctl_elem_value *ucontrol)
3216{
3217 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3218 u16 fe_id = 0, in_ch = 0;
3219
3220 fe_id = e->shift_l;
3221 in_ch = e->shift_r;
3222 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3223 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3224 return -EINVAL;
3225 }
3226 if (in_ch >= ADM_MAX_CHANNELS) {
3227 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3228 return -EINVAL;
3229 }
3230
3231 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3232 return 1;
3233}
3234
3235
3236static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3237 struct snd_ctl_elem_info *uinfo)
3238{
3239 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3240 uinfo->count = ADM_MAX_CHANNELS;
3241 uinfo->value.integer.min = 0;
3242 uinfo->value.integer.max = WEIGHT_0_DB;
3243
3244 return 0;
3245}
3246
3247static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3248 struct snd_ctl_elem_value *ucontrol)
3249{
3250 u16 fe_id = 0, out_ch = 0;
3251 int i, weight;
3252
3253 fe_id = ((struct soc_multi_mixer_control *)
3254 kcontrol->private_value)->shift;
3255 out_ch = ((struct soc_multi_mixer_control *)
3256 kcontrol->private_value)->rshift;
3257 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3258 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3259 return -EINVAL;
3260 }
3261 if (out_ch >= ADM_MAX_CHANNELS) {
3262 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3263 return -EINVAL;
3264 }
3265
3266 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3267 __func__, fe_id,
3268 ucontrol->value.integer.value[0],
3269 ucontrol->value.integer.value[1],
3270 ucontrol->value.integer.value[2],
3271 ucontrol->value.integer.value[3],
3272 ucontrol->value.integer.value[4],
3273 ucontrol->value.integer.value[5],
3274 ucontrol->value.integer.value[6],
3275 ucontrol->value.integer.value[7]);
3276
3277 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3278 weight = ucontrol->value.integer.value[i];
3279 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3280 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3281 __func__, fe_id, out_ch, i,
3282 channel_mixer[fe_id].channel_weight[out_ch][i]);
3283 }
3284
3285 return 0;
3286}
3287
3288static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3289 struct snd_ctl_elem_value *ucontrol)
3290{
3291 u16 fe_id = 0, out_ch = 0;
3292 int i;
3293
3294 fe_id = ((struct soc_multi_mixer_control *)
3295 kcontrol->private_value)->shift;
3296 out_ch = ((struct soc_multi_mixer_control *)
3297 kcontrol->private_value)->rshift;
3298 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3299 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3300 return -EINVAL;
3301 }
3302 if (out_ch >= ADM_MAX_CHANNELS) {
3303 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3304 return -EINVAL;
3305 }
3306
3307 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3308 ucontrol->value.integer.value[i] =
3309 channel_mixer[fe_id].channel_weight[out_ch][i];
3310
3311 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3312 __func__, fe_id,
3313 ucontrol->value.integer.value[0],
3314 ucontrol->value.integer.value[1],
3315 ucontrol->value.integer.value[2],
3316 ucontrol->value.integer.value[3],
3317 ucontrol->value.integer.value[4],
3318 ucontrol->value.integer.value[5],
3319 ucontrol->value.integer.value[6],
3320 ucontrol->value.integer.value[7]);
3321
3322 return 0;
3323}
3324
3325static const struct snd_kcontrol_new channel_mixer_controls[] = {
3326 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3327 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3328 msm_pcm_get_channel_rule_index,
3329 msm_pcm_put_channel_rule_index),
3330 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3331 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3332 msm_pcm_get_channel_rule_index,
3333 msm_pcm_put_channel_rule_index),
3334 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3335 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3336 msm_pcm_get_channel_rule_index,
3337 msm_pcm_put_channel_rule_index),
3338 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3339 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3340 msm_pcm_get_channel_rule_index,
3341 msm_pcm_put_channel_rule_index),
3342 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3343 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3344 msm_pcm_get_channel_rule_index,
3345 msm_pcm_put_channel_rule_index),
3346 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3347 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3348 msm_pcm_get_channel_rule_index,
3349 msm_pcm_put_channel_rule_index),
3350
3351 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3352 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3353 msm_pcm_get_out_chs,
3354 msm_pcm_put_out_chs),
3355 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3356 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3357 msm_pcm_get_out_chs,
3358 msm_pcm_put_out_chs),
3359 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3360 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3361 msm_pcm_get_out_chs,
3362 msm_pcm_put_out_chs),
3363 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3364 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3365 msm_pcm_get_out_chs,
3366 msm_pcm_put_out_chs),
3367 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3368 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3369 msm_pcm_get_out_chs,
3370 msm_pcm_put_out_chs),
3371 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3372 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3373 msm_pcm_get_out_chs,
3374 msm_pcm_put_out_chs),
3375 {
3376 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3377 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3378 .name = "MultiMedia1 Channel Mixer",
3379 .info = msm_pcm_channel_mixer_info,
3380 .get = msm_pcm_channel_mixer_get,
3381 .put = msm_pcm_channel_mixer_put,
3382 .private_value = (unsigned long)&(mm1_channel_mux)
3383 },
3384 {
3385 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3386 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3387 .name = "MultiMedia2 Channel Mixer",
3388 .info = msm_pcm_channel_mixer_info,
3389 .get = msm_pcm_channel_mixer_get,
3390 .put = msm_pcm_channel_mixer_put,
3391 .private_value = (unsigned long)&(mm2_channel_mux)
3392 },
3393 {
3394 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3395 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3396 .name = "MultiMedia3 Channel Mixer",
3397 .info = msm_pcm_channel_mixer_info,
3398 .get = msm_pcm_channel_mixer_get,
3399 .put = msm_pcm_channel_mixer_put,
3400 .private_value = (unsigned long)&(mm3_channel_mux)
3401 },
3402 {
3403 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3404 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3405 .name = "MultiMedia4 Channel Mixer",
3406 .info = msm_pcm_channel_mixer_info,
3407 .get = msm_pcm_channel_mixer_get,
3408 .put = msm_pcm_channel_mixer_put,
3409 .private_value = (unsigned long)&(mm4_channel_mux)
3410 },
3411 {
3412 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3413 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3414 .name = "MultiMedia1 Output Channel1",
3415 .info = msm_pcm_channel_weight_info,
3416 .get = msm_pcm_channel_weight_get,
3417 .put = msm_pcm_channel_weight_put,
3418 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3419 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3420 },
3421 {
3422 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3423 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3424 .name = "MultiMedia1 Output Channel2",
3425 .info = msm_pcm_channel_weight_info,
3426 .get = msm_pcm_channel_weight_get,
3427 .put = msm_pcm_channel_weight_put,
3428 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3429 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3430 },
3431 {
3432 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3433 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3434 .name = "MultiMedia1 Output Channel3",
3435 .info = msm_pcm_channel_weight_info,
3436 .get = msm_pcm_channel_weight_get,
3437 .put = msm_pcm_channel_weight_put,
3438 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3439 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3440 },
3441 {
3442 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3443 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3444 .name = "MultiMedia1 Output Channel4",
3445 .info = msm_pcm_channel_weight_info,
3446 .get = msm_pcm_channel_weight_get,
3447 .put = msm_pcm_channel_weight_put,
3448 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3449 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3450 },
3451 {
3452 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3453 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3454 .name = "MultiMedia1 Output Channel5",
3455 .info = msm_pcm_channel_weight_info,
3456 .get = msm_pcm_channel_weight_get,
3457 .put = msm_pcm_channel_weight_put,
3458 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3459 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3460 },
3461 {
3462 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3463 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3464 .name = "MultiMedia1 Output Channel6",
3465 .info = msm_pcm_channel_weight_info,
3466 .get = msm_pcm_channel_weight_get,
3467 .put = msm_pcm_channel_weight_put,
3468 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3469 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3470 },
3471 {
3472 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3473 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3474 .name = "MultiMedia1 Output Channel7",
3475 .info = msm_pcm_channel_weight_info,
3476 .get = msm_pcm_channel_weight_get,
3477 .put = msm_pcm_channel_weight_put,
3478 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3479 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3480 },
3481 {
3482 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3483 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3484 .name = "MultiMedia1 Output Channel8",
3485 .info = msm_pcm_channel_weight_info,
3486 .get = msm_pcm_channel_weight_get,
3487 .put = msm_pcm_channel_weight_put,
3488 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3489 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3490 },
3491 {
3492 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3493 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3494 .name = "MultiMedia2 Output Channel1",
3495 .info = msm_pcm_channel_weight_info,
3496 .get = msm_pcm_channel_weight_get,
3497 .put = msm_pcm_channel_weight_put,
3498 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3499 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3500 },
3501 {
3502 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3503 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3504 .name = "MultiMedia2 Output Channel2",
3505 .info = msm_pcm_channel_weight_info,
3506 .get = msm_pcm_channel_weight_get,
3507 .put = msm_pcm_channel_weight_put,
3508 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3509 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3510 },
3511 {
3512 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3513 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3514 .name = "MultiMedia2 Output Channel3",
3515 .info = msm_pcm_channel_weight_info,
3516 .get = msm_pcm_channel_weight_get,
3517 .put = msm_pcm_channel_weight_put,
3518 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3519 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3520 },
3521 {
3522 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3523 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3524 .name = "MultiMedia3 Output Channel1",
3525 .info = msm_pcm_channel_weight_info,
3526 .get = msm_pcm_channel_weight_get,
3527 .put = msm_pcm_channel_weight_put,
3528 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3529 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3530 },
3531 {
3532 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3533 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3534 .name = "MultiMedia3 Output Channel2",
3535 .info = msm_pcm_channel_weight_info,
3536 .get = msm_pcm_channel_weight_get,
3537 .put = msm_pcm_channel_weight_put,
3538 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3539 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3540 },
3541 {
3542 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3543 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3544 .name = "MultiMedia1 Channel1",
3545 .info = msm_pcm_channel_input_be_info,
3546 .get = msm_pcm_channel_input_be_get,
3547 .put = msm_pcm_channel_input_be_put,
3548 .private_value = (unsigned long)&(mm1_ch1_enum)
3549 },
3550 {
3551 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3552 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3553 .name = "MultiMedia1 Channel2",
3554 .info = msm_pcm_channel_input_be_info,
3555 .get = msm_pcm_channel_input_be_get,
3556 .put = msm_pcm_channel_input_be_put,
3557 .private_value = (unsigned long)&(mm1_ch2_enum)
3558 },
3559 {
3560 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3561 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3562 .name = "MultiMedia1 Channel3",
3563 .info = msm_pcm_channel_input_be_info,
3564 .get = msm_pcm_channel_input_be_get,
3565 .put = msm_pcm_channel_input_be_put,
3566 .private_value = (unsigned long)&(mm1_ch3_enum)
3567 },
3568 {
3569 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3570 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3571 .name = "MultiMedia1 Channel4",
3572 .info = msm_pcm_channel_input_be_info,
3573 .get = msm_pcm_channel_input_be_get,
3574 .put = msm_pcm_channel_input_be_put,
3575 .private_value = (unsigned long)&(mm1_ch4_enum)
3576 },
3577 {
3578 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3579 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3580 .name = "MultiMedia1 Channel5",
3581 .info = msm_pcm_channel_input_be_info,
3582 .get = msm_pcm_channel_input_be_get,
3583 .put = msm_pcm_channel_input_be_put,
3584 .private_value = (unsigned long)&(mm1_ch5_enum)
3585 },
3586 {
3587 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3588 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3589 .name = "MultiMedia1 Channel6",
3590 .info = msm_pcm_channel_input_be_info,
3591 .get = msm_pcm_channel_input_be_get,
3592 .put = msm_pcm_channel_input_be_put,
3593 .private_value = (unsigned long)&(mm1_ch6_enum)
3594 },
3595 {
3596 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3597 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3598 .name = "MultiMedia1 Channel7",
3599 .info = msm_pcm_channel_input_be_info,
3600 .get = msm_pcm_channel_input_be_get,
3601 .put = msm_pcm_channel_input_be_put,
3602 .private_value = (unsigned long)&(mm1_ch7_enum)
3603 },
3604 {
3605 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3606 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3607 .name = "MultiMedia1 Channel8",
3608 .info = msm_pcm_channel_input_be_info,
3609 .get = msm_pcm_channel_input_be_get,
3610 .put = msm_pcm_channel_input_be_put,
3611 .private_value = (unsigned long)&(mm1_ch8_enum)
3612 },
3613};
3614static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3615 struct snd_ctl_elem_value *ucontrol)
3616{
3617 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3618 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3619 ucontrol->value.integer.value[0]);
3620 return 0;
3621}
3622
3623static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3624 struct snd_ctl_elem_value *ucontrol)
3625{
3626 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3627 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3628 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3629 return 0;
3630}
3631
3632static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3633 "Four", "Five", "Six", "Seven", "Eight"};
3634
3635static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3636 struct snd_ctl_elem_value *ucontrol)
3637{
3638 switch (msm_ec_ref_bit_format) {
3639 case SNDRV_PCM_FORMAT_S24_LE:
3640 ucontrol->value.integer.value[0] = 2;
3641 break;
3642 case SNDRV_PCM_FORMAT_S16_LE:
3643 ucontrol->value.integer.value[0] = 1;
3644 break;
3645 default:
3646 ucontrol->value.integer.value[0] = 0;
3647 break;
3648 }
3649 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3650 __func__, ucontrol->value.integer.value[0]);
3651 return 0;
3652}
3653
3654static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3655 struct snd_ctl_elem_value *ucontrol)
3656{
3657 u16 bit_width = 0;
3658
3659 switch (ucontrol->value.integer.value[0]) {
3660 case 2:
3661 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3662 break;
3663 case 1:
3664 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3665 break;
3666 default:
3667 msm_ec_ref_bit_format = 0;
3668 break;
3669 }
3670
3671 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3672 bit_width = 16;
3673 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3674 bit_width = 24;
3675
3676 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3677 __func__, msm_ec_ref_bit_format);
3678 adm_ec_ref_rx_bit_width(bit_width);
3679 return 0;
3680}
3681
3682static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3683
3684static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3685 struct snd_ctl_elem_value *ucontrol)
3686{
3687 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3688 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3689 __func__, ucontrol->value.integer.value[0]);
3690 return 0;
3691}
3692
3693static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3694 struct snd_ctl_elem_value *ucontrol)
3695{
3696 switch (ucontrol->value.integer.value[0]) {
3697 case 0:
3698 msm_ec_ref_sampling_rate = 0;
3699 break;
3700 case 1:
3701 msm_ec_ref_sampling_rate = 8000;
3702 break;
3703 case 2:
3704 msm_ec_ref_sampling_rate = 16000;
3705 break;
3706 case 3:
3707 msm_ec_ref_sampling_rate = 32000;
3708 break;
3709 case 4:
3710 msm_ec_ref_sampling_rate = 44100;
3711 break;
3712 case 5:
3713 msm_ec_ref_sampling_rate = 48000;
3714 break;
3715 case 6:
3716 msm_ec_ref_sampling_rate = 96000;
3717 break;
3718 case 7:
3719 msm_ec_ref_sampling_rate = 192000;
3720 break;
3721 case 8:
3722 msm_ec_ref_sampling_rate = 384000;
3723 break;
3724 default:
3725 msm_ec_ref_sampling_rate = 48000;
3726 break;
3727 }
3728 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3729 __func__, msm_ec_ref_sampling_rate);
3730 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3731 return 0;
3732}
3733
3734static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3735 "32000", "44100", "48000", "96000", "192000", "384000"};
3736
3737static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3738 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3739 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3740 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3741};
3742
3743static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3744 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3745 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3746 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3747 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3748 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3749 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3750};
3751
3752static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3753 struct snd_ctl_elem_value *ucontrol)
3754{
3755 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3756 mutex_lock(&routing_lock);
3757 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3758 mutex_unlock(&routing_lock);
3759 return 0;
3760}
3761
3762static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3763 struct snd_ctl_elem_value *ucontrol)
3764{
3765 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303766 struct snd_soc_dapm_widget *widget =
3767 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303768 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3769 struct snd_soc_dapm_update *update = NULL;
3770
3771
3772 mutex_lock(&routing_lock);
3773 switch (ucontrol->value.integer.value[0]) {
3774 case 0:
3775 msm_route_ec_ref_rx = 0;
3776 ec_ref_port_id = AFE_PORT_INVALID;
3777 break;
3778 case 1:
3779 msm_route_ec_ref_rx = 1;
3780 ec_ref_port_id = SLIMBUS_0_RX;
3781 break;
3782 case 2:
3783 msm_route_ec_ref_rx = 2;
3784 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3785 break;
3786 case 3:
3787 msm_route_ec_ref_rx = 3;
3788 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3789 break;
3790 case 4:
3791 msm_route_ec_ref_rx = 4;
3792 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3793 break;
3794 case 5:
3795 msm_route_ec_ref_rx = 5;
3796 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3797 break;
3798 case 6:
3799 msm_route_ec_ref_rx = 6;
3800 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3801 break;
3802 case 7:
3803 msm_route_ec_ref_rx = 7;
3804 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3805 break;
3806 case 9:
3807 msm_route_ec_ref_rx = 9;
3808 ec_ref_port_id = SLIMBUS_5_RX;
3809 break;
3810 case 10:
3811 msm_route_ec_ref_rx = 10;
3812 ec_ref_port_id = SLIMBUS_1_TX;
3813 break;
3814 case 11:
3815 msm_route_ec_ref_rx = 11;
3816 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3817 break;
3818 case 12:
3819 msm_route_ec_ref_rx = 12;
3820 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3821 break;
3822 case 13:
3823 msm_route_ec_ref_rx = 13;
3824 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3825 break;
3826 case 14:
3827 msm_route_ec_ref_rx = 14;
3828 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3829 break;
3830 case 15:
3831 msm_route_ec_ref_rx = 15;
3832 ec_ref_port_id = SLIMBUS_6_RX;
3833 break;
3834 case 16:
3835 msm_route_ec_ref_rx = 16;
3836 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3837 break;
3838 case 17:
3839 msm_route_ec_ref_rx = 17;
3840 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3841 break;
3842 case 18:
3843 msm_route_ec_ref_rx = 18;
3844 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3845 break;
3846 case 19:
3847 msm_route_ec_ref_rx = 19;
3848 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3849 break;
3850 case 20:
3851 msm_route_ec_ref_rx = 20;
3852 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3853 break;
3854 case 21:
3855 msm_route_ec_ref_rx = 21;
3856 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3857 break;
3858 case 22:
3859 msm_route_ec_ref_rx = 22;
3860 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3861 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003862 case 23:
3863 msm_route_ec_ref_rx = 23;
3864 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3865 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303866 case 24:
3867 msm_route_ec_ref_rx = 24;
3868 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3869 break;
3870 case 25:
3871 msm_route_ec_ref_rx = 25;
3872 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3873 break;
3874 case 26:
3875 msm_route_ec_ref_rx = 26;
3876 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3877 break;
3878 case 27:
3879 msm_route_ec_ref_rx = 27;
3880 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3881 break;
3882 case 28:
3883 msm_route_ec_ref_rx = 28;
3884 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3885 break;
Zhou Songb167db12018-07-02 17:14:00 +08003886 case 29:
3887 msm_route_ec_ref_rx = 29;
3888 ec_ref_port_id = SLIMBUS_7_RX;
3889 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303890 case 30:
3891 msm_route_ec_ref_rx = 30;
3892 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3893 break;
3894 case 31:
3895 msm_route_ec_ref_rx = 31;
3896 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3897 break;
3898 case 32:
3899 msm_route_ec_ref_rx = 32;
3900 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3901 break;
3902 case 33:
3903 msm_route_ec_ref_rx = 33;
3904 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3905 break;
3906 case 34:
3907 msm_route_ec_ref_rx = 34;
3908 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3909 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303910 default:
3911 msm_route_ec_ref_rx = 0; /* NONE */
3912 pr_err("%s EC ref rx %ld not valid\n",
3913 __func__, ucontrol->value.integer.value[0]);
3914 ec_ref_port_id = AFE_PORT_INVALID;
3915 break;
3916 }
3917 adm_ec_ref_rx_id(ec_ref_port_id);
3918 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3919 __func__, msm_route_ec_ref_rx);
3920 mutex_unlock(&routing_lock);
3921 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3922 msm_route_ec_ref_rx, e, update);
3923 return 0;
3924}
3925
3926static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3927 "PRI_MI2S_TX", "SEC_MI2S_TX",
3928 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3929 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3930 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3931 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303932 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3933 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003934 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303935 "SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
3936 "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303937};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303938
3939static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3940 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3941};
3942
3943static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3944 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3945 msm_route_ec_ref_rx_enum[0],
3946 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3947
3948static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3949 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3950 msm_route_ec_ref_rx_enum[0],
3951 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3952
3953static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3954 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3955 msm_route_ec_ref_rx_enum[0],
3956 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3957
3958static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3959 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3960 msm_route_ec_ref_rx_enum[0],
3961 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3962
3963static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3964 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3965 msm_route_ec_ref_rx_enum[0],
3966 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3967
3968static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3969 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3970 msm_route_ec_ref_rx_enum[0],
3971 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3972
3973static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3974 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3975 msm_route_ec_ref_rx_enum[0],
3976 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3977
3978static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3979 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3980 msm_route_ec_ref_rx_enum[0],
3981 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3982
Asish Bhattacharya34504582017-08-08 12:55:01 +05303983static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3984 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3985 msm_route_ec_ref_rx_enum[0],
3986 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3987
Laxminath Kasam38070be2017-08-17 18:21:59 +05303988static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3989 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3990 msm_route_ec_ref_rx_enum[0],
3991 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3992
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303993static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3994 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3995 msm_route_ec_ref_rx_enum[0],
3996 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3997
3998static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3999 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4000 msm_route_ec_ref_rx_enum[0],
4001 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4002
4003static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4004 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4005 msm_route_ec_ref_rx_enum[0],
4006 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4007
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304008static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4009 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4010 msm_route_ec_ref_rx_enum[0],
4011 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4012
4013static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4014 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4015 msm_route_ec_ref_rx_enum[0],
4016 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4017
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304018static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4019 struct snd_ctl_elem_value *ucontrol)
4020{
4021 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4022
4023 mutex_lock(&routing_lock);
4024 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4025 mutex_unlock(&routing_lock);
4026 return 0;
4027}
4028
4029static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4030 struct snd_ctl_elem_value *ucontrol)
4031{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304032 struct snd_soc_dapm_widget *widget =
4033 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304034 int mux = ucontrol->value.enumerated.item[0];
4035 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4036 int ret = 1;
4037 bool state = true;
4038 uint16_t ext_ec_ref_port_id;
4039 struct snd_soc_dapm_update *update = NULL;
4040
4041 if (mux >= e->items) {
4042 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4043 return -EINVAL;
4044 }
4045
4046 mutex_lock(&routing_lock);
4047 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4048
4049 switch (msm_route_ext_ec_ref) {
4050 case EXT_EC_REF_PRI_MI2S_TX:
4051 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4052 break;
4053 case EXT_EC_REF_SEC_MI2S_TX:
4054 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4055 break;
4056 case EXT_EC_REF_TERT_MI2S_TX:
4057 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4058 break;
4059 case EXT_EC_REF_QUAT_MI2S_TX:
4060 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4061 break;
4062 case EXT_EC_REF_QUIN_MI2S_TX:
4063 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4064 break;
4065 case EXT_EC_REF_SLIM_1_TX:
4066 ext_ec_ref_port_id = SLIMBUS_1_TX;
4067 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004068 case EXT_EC_REF_SEC_TDM_TX:
4069 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4070 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304071 case EXT_EC_REF_NONE:
4072 default:
4073 ext_ec_ref_port_id = AFE_PORT_INVALID;
4074 state = false;
4075 break;
4076 }
4077
4078 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4079 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4080
4081 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4082 mutex_unlock(&routing_lock);
4083 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4084 update);
4085 } else {
4086 ret = -EINVAL;
4087 mutex_unlock(&routing_lock);
4088 }
4089 return ret;
4090}
4091
4092static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4093 "SEC_MI2S_TX", "TERT_MI2S_TX",
4094 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004095 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304096
4097static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4098 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4099};
4100
4101static const struct snd_kcontrol_new voc_ext_ec_mux =
4102 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4103 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4104
4105
4106static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004107 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4108 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304109 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004111 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4112 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304113 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004115 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4116 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304117 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004119 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4120 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304121 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004123 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4124 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304125 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004127 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4128 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304129 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004131 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4132 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304133 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004135 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4136 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304137 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004139 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4140 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304141 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004143 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4144 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304145 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004147 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4148 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304149 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004151 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4152 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304153 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004155 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4156 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304157 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004159 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4160 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304161 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004163 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4164 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304165 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004167 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4168 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304169 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004171 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4172 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304173 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004175 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4176 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304177 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004179 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4180 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304181 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004183 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4184 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304185 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004187 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4188 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304189 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4190 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304191};
4192
4193static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004194 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4195 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304196 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004198 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4199 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304200 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004202 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4203 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304204 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004206 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4207 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304208 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004210 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4211 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304212 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004214 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4215 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304216 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004218 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4219 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304220 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004222 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4223 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304224 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004226 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4227 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304228 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004230 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4231 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304232 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004234 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4235 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304236 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4237 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004238 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4239 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304240 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4241 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004242 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4243 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304244 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004246 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4247 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304248 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004250 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4251 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304252 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004254 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4255 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304256 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004258 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4259 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304260 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004262 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4263 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304264 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004266 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4267 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304268 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004270 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4271 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304272 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004274 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4275 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304276 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4277 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304278};
4279
Ralf Herzc8701f72018-06-20 11:37:35 +02004280static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004281 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004282 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304283 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004285 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004286 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304287 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004289 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004290 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304291 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004293 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004294 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304295 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004297 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004298 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304299 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004301 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004302 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304303 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004305 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004306 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304307 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004309 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004310 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304311 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004313 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004314 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304315 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004317 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004318 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304319 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004321 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004322 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304323 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004325 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004326 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304327 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004329 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004330 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304331 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004333 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004334 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304335 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004337 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004338 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304339 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004341 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004342 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304343 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004345 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004346 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304347 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004349 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004350 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304351 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004353 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004354 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304355 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004357 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004358 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304359 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004361 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004362 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4363 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4364 msm_routing_put_audio_mixer),
4365};
4366
4367static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4368 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4369 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4370 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4371 msm_routing_put_audio_mixer),
4372 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4373 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4374 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4375 msm_routing_put_audio_mixer),
4376 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4377 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4378 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4379 msm_routing_put_audio_mixer),
4380 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4381 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4382 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4383 msm_routing_put_audio_mixer),
4384 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4385 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4386 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4387 msm_routing_put_audio_mixer),
4388 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4389 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4390 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4391 msm_routing_put_audio_mixer),
4392 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4393 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4394 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4395 msm_routing_put_audio_mixer),
4396 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4397 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4398 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4399 msm_routing_put_audio_mixer),
4400 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4401 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4402 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4403 msm_routing_put_audio_mixer),
4404 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4405 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4406 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4407 msm_routing_put_audio_mixer),
4408 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4409 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4410 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4411 msm_routing_put_audio_mixer),
4412 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4413 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4414 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4415 msm_routing_put_audio_mixer),
4416 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4417 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4418 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4419 msm_routing_put_audio_mixer),
4420 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4421 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4422 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4423 msm_routing_put_audio_mixer),
4424 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4425 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4426 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4427 msm_routing_put_audio_mixer),
4428 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4429 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4430 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4431 msm_routing_put_audio_mixer),
4432 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4433 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4434 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4435 msm_routing_put_audio_mixer),
4436 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4437 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4438 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4439 msm_routing_put_audio_mixer),
4440 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4441 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4442 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4443 msm_routing_put_audio_mixer),
4444 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4445 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4446 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4447 msm_routing_put_audio_mixer),
4448 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4449 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304450 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4451 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304452};
4453
4454static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004455 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4456 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304457 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004459 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4460 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304461 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004463 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4464 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304465 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004467 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4468 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304469 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004471 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4472 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304473 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004475 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4476 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304477 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004479 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4480 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304481 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004483 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4484 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304485 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004487 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4488 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304489 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004491 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4492 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304493 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004495 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4496 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304497 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004499 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4500 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304501 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004503 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4504 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304505 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004507 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4508 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304509 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004511 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4512 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304513 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004515 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4516 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304517 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4518 msm_routing_put_audio_mixer),
4519};
4520
4521static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004522 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4523 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004526 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4527 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304528 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004530 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4531 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304532 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004534 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4535 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004538 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4539 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304540 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004542 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4543 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304544 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004546 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4547 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304548 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004550 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4551 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304552 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004554 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4555 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304556 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004558 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4559 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004562 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4563 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304564 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004566 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4567 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304568 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004570 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4571 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304572 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004574 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4575 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304576 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004578 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4579 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304580 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004582 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4583 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004586 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4587 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304588 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004590 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4591 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304592 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004594 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4595 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304596 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004598 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4599 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304600 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004602 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4603 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304604 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4605 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304606};
4607
4608static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004609 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4610 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304611 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004613 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4614 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304615 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004617 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4618 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304619 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004621 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4622 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304623 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004625 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4626 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304627 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004629 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4630 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304631 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004633 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4634 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304635 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004637 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4638 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304639 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004641 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4642 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304643 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004645 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4646 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304647 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004649 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4650 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304651 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004653 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4654 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304655 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004657 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4658 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304659 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004661 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4662 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304663 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004665 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4666 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304667 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004669 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4670 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304671 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004673 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4674 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304675 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004677 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4678 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304679 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004681 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4682 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304683 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004685 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4686 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304687 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004689 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4690 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304691 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4692 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304693};
4694
4695static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004696 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4697 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004700 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4701 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004704 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4705 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304706 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004708 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4709 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304710 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004712 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4713 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304714 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004716 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4717 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004720 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4721 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304722 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004724 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4725 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004728 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4729 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304730 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004732 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4733 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304734 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004736 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4737 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304738 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004740 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4741 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304742 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004744 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4745 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304746 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004748 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4749 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304750 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004752 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4753 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304754 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004756 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4757 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304758 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004760 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4761 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304762 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004764 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4765 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304766 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004768 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4769 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304770 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004772 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4773 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304774 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004776 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4777 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304778 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4779 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304780};
4781
4782static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004783 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4784 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304785 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004787 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4788 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304789 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004791 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4792 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304793 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004795 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4796 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304797 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004799 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4800 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304801 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004803 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4804 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304805 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004807 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4808 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304809 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004811 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4812 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304813 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004815 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4816 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304817 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004819 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4820 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304821 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004823 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4824 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304825 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004827 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4828 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304829 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004831 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4832 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304833 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004835 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4836 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304837 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004839 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4840 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004843 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4844 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304845 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004847 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4848 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304849 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004851 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4852 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304853 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004855 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4856 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304857 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004859 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4860 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304861 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004863 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4864 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304865 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4866 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867};
4868
4869static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004870 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4871 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304872 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004874 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4875 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004878 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4879 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304880 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004882 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4883 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004886 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4887 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304888 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004890 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4891 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004894 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4895 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304896 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004898 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4899 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304900 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004902 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4903 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304904 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004906 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4907 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004910 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4911 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304912 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4913 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004914 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4915 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304916 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4917 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004918 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4919 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304920 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4921 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004922 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4923 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304924 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004926 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4927 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304928 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004930 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4931 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004934 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4935 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304936 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004938 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4939 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304940 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004942 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4943 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304944 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004946 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4947 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304948 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004950 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4951 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304952 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4953 msm_routing_put_audio_mixer),
4954
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304955};
4956
4957static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004958 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4959 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304960 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004962 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4963 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304964 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004966 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4967 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304968 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004970 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4971 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304972 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004974 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4975 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304976 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004978 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4979 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304980 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004982 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4983 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304984 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004986 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4987 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304988 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004990 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4991 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304992 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004994 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4995 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304996 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004998 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4999 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305000 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005002 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5003 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305004 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005006 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5007 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305008 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005010 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5011 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305012 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005014 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5015 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305016 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005018 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5019 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305020 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005022 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5023 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305024 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005026 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5027 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305028 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005030 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5031 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305032 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5033 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305034};
5035
5036static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005037 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5038 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305039 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5040 msm_routing_put_audio_mixer),
5041};
5042
5043static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005044 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005048 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005052 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005084 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305086 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005096 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5097 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305098 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005100 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5101 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305102 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005104 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5105 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305106 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005108 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5109 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305110 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005112 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5113 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305114 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005116 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5117 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305118 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005120 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5121 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305122 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005124 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5125 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305126 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5127 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305128};
5129
5130static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005131 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5132 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305133 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005135 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5136 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305137 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005139 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5140 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005143 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5144 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305145 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005147 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5148 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305149 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005151 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5152 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305153 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005155 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5156 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305157 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005159 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5160 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305161 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005163 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5164 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305165 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005167 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5168 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305169 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005171 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5172 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305173 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005175 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5176 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305177 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005179 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5180 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305181 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005183 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5184 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305185 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005187 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5188 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305189 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005191 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5192 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305193 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005195 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5196 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305197 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005199 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5200 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305201 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005203 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5204 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305205 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005207 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5208 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305209 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005211 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5212 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305213 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5214 msm_routing_put_audio_mixer),
5215
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305216};
5217
5218static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005219 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5220 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305221 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005223 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5224 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305225 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005227 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5228 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305229 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005231 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5232 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305233 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005235 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5236 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305237 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005239 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5240 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305241 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005243 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5244 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305245 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005247 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5248 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305249 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005251 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5252 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305253 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005255 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5256 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305257 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005259 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5260 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305261 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005263 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5264 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305265 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005267 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5268 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305269 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005271 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5272 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305273 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005275 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5276 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305277 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005279 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5280 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305281 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5282 msm_routing_put_audio_mixer),
5283};
5284
5285static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005286 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5287 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305288 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005290 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5291 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305292 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005294 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5295 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305296 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005298 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5299 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305300 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005302 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5303 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305304 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005306 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5307 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305308 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005310 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5311 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305312 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005314 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5315 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305316 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005318 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5319 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305320 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005322 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5323 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305324 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005326 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005330 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005334 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005338 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005342 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5343 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305344 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005346 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5347 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305348 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5349 msm_routing_put_audio_mixer),
5350};
5351
5352static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005353 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5354 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305355 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005357 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5358 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305359 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005361 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5362 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305363 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005365 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5366 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305367 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005369 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5370 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305371 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005373 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5374 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305375 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005377 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5378 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305379 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005381 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5382 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305383 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005385 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5386 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305387 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005389 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5390 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305391 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005393 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5394 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305395 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005397 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5398 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305399 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005401 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5402 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305403 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005405 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5406 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305407 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005409 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5410 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305411 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005413 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5414 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305415 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005417 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5418 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305419 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005421 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5422 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305423 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005425 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5426 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305427 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005429 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5430 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305431 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5432 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005433 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5434 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305435 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5436 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437};
5438
5439static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005440 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5441 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305442 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005444 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5445 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005448 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5449 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305450 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005452 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5453 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305454 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005456 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5457 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305458 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005460 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5461 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005464 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5465 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305466 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005468 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5469 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305470 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005472 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5473 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305474 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005476 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5477 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305478 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005480 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5481 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305482 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005484 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5485 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305486 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005488 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5489 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305490 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005492 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5493 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305494 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005496 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5497 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305498 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005500 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5501 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305502 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5503 msm_routing_put_audio_mixer),
5504};
5505
Karthikeyan Mani57550082018-05-03 18:43:58 -07005506static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5507 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
5511 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5512 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5513 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5514 msm_routing_put_audio_mixer),
5515 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5516 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5517 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5518 msm_routing_put_audio_mixer),
5519 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5520 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5521 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5522 msm_routing_put_audio_mixer),
5523 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5524 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5525 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5526 msm_routing_put_audio_mixer),
5527 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5528 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5529 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5530 msm_routing_put_audio_mixer),
5531 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5532 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5533 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5534 msm_routing_put_audio_mixer),
5535 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5536 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5537 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5538 msm_routing_put_audio_mixer),
5539 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5540 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5541 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5542 msm_routing_put_audio_mixer),
5543 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5544 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5545 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5546 msm_routing_put_audio_mixer),
5547 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5548 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5549 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5550 msm_routing_put_audio_mixer),
5551 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5552 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5553 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5554 msm_routing_put_audio_mixer),
5555 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5556 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5557 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5558 msm_routing_put_audio_mixer),
5559 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5560 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5561 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5562 msm_routing_put_audio_mixer),
5563 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5564 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5565 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5566 msm_routing_put_audio_mixer),
5567 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5568 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5569 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5570 msm_routing_put_audio_mixer),
5571};
5572
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305573 /* incall music delivery mixer */
5574static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005575 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5576 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305577 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005579 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005583 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305585 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005587 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
5591};
5592
5593static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005594 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5595 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305596 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005598 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5599 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305600 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005602 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5603 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305604 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005606 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5607 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305608 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5609 msm_routing_put_audio_mixer),
5610};
5611
5612static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005613 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305615 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005617 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5618 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305619 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005621 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5622 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305623 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005625 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5626 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305627 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5628 msm_routing_put_audio_mixer),
5629};
5630
5631static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005632 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5633 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305634 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005636 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5637 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305638 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005640 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5641 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305642 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005644 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5645 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305646 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005648 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5649 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305650 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5651 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005652 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5653 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305654 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005656 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5657 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305658 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005660 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5661 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305662 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005664 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5665 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305666 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005668 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5669 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305670 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005672 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5673 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305674 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005676 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5677 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305678 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005680 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5681 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305682 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005684 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5685 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305686 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005688 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5689 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305690 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005692 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5693 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305694 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5695 msm_routing_put_audio_mixer),
5696};
5697
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305698static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5699 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5700 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5701 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5702 msm_routing_put_audio_mixer),
5703 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5704 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5705 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5706 msm_routing_put_audio_mixer),
5707 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5708 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5709 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5710 msm_routing_put_audio_mixer),
5711 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5712 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5713 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5714 msm_routing_put_audio_mixer),
5715 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5716 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5717 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5718 msm_routing_put_audio_mixer),
5719 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5720 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5721 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5722 msm_routing_put_audio_mixer),
5723 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5724 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5725 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5726 msm_routing_put_audio_mixer),
5727 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5728 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5729 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5730 msm_routing_put_audio_mixer),
5731 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5732 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5733 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5734 msm_routing_put_audio_mixer),
5735 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5736 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5737 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5738 msm_routing_put_audio_mixer),
5739 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5740 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5741 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5742 msm_routing_put_audio_mixer),
5743 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5744 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5745 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5746 msm_routing_put_audio_mixer),
5747 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5748 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5749 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5750 msm_routing_put_audio_mixer),
5751 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5752 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5753 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5754 msm_routing_put_audio_mixer),
5755 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5756 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5757 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5758 msm_routing_put_audio_mixer),
5759 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5760 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5761 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5762 msm_routing_put_audio_mixer),
5763};
5764
5765static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5766 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5768 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
5770 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5771 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5772 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5773 msm_routing_put_audio_mixer),
5774 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5775 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5776 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5777 msm_routing_put_audio_mixer),
5778 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5779 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5780 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5781 msm_routing_put_audio_mixer),
5782 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5783 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5784 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5785 msm_routing_put_audio_mixer),
5786 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5787 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5788 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5789 msm_routing_put_audio_mixer),
5790 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5791 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5792 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5793 msm_routing_put_audio_mixer),
5794 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5795 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5796 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5797 msm_routing_put_audio_mixer),
5798 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5799 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5800 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5801 msm_routing_put_audio_mixer),
5802 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5803 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5804 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5805 msm_routing_put_audio_mixer),
5806 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5807 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5808 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5809 msm_routing_put_audio_mixer),
5810 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5811 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5812 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5813 msm_routing_put_audio_mixer),
5814 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5815 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5816 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5817 msm_routing_put_audio_mixer),
5818 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5819 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5820 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5821 msm_routing_put_audio_mixer),
5822 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5823 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5824 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5825 msm_routing_put_audio_mixer),
5826 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5827 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5828 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5829 msm_routing_put_audio_mixer),
5830};
5831
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305832static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5833 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5835 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
5837 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5839 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
5841 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5843 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
5845 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5847 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
5849 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5851 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
5853 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5854 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5855 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5856 msm_routing_put_audio_mixer),
5857 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5858 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5859 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5860 msm_routing_put_audio_mixer),
5861 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5862 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5863 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5864 msm_routing_put_audio_mixer),
5865 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5866 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5867 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5868 msm_routing_put_audio_mixer),
5869 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5870 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5871 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5872 msm_routing_put_audio_mixer),
5873 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5874 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5875 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5876 msm_routing_put_audio_mixer),
5877 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5878 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5879 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5880 msm_routing_put_audio_mixer),
5881 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5882 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5883 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5884 msm_routing_put_audio_mixer),
5885 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5886 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5887 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5888 msm_routing_put_audio_mixer),
5889 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5890 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5891 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5892 msm_routing_put_audio_mixer),
5893 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5894 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5895 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5896 msm_routing_put_audio_mixer),
5897};
5898
5899static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
5900 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5902 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
5904 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5906 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
5908 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5910 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
5912 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5914 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
5916 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5918 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
5920 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5922 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
5924 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5925 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5926 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5927 msm_routing_put_audio_mixer),
5928 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5929 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5930 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5931 msm_routing_put_audio_mixer),
5932 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5933 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5934 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5935 msm_routing_put_audio_mixer),
5936 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5937 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5938 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5939 msm_routing_put_audio_mixer),
5940 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5941 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5942 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5943 msm_routing_put_audio_mixer),
5944 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5945 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5946 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5947 msm_routing_put_audio_mixer),
5948 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5949 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5950 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5951 msm_routing_put_audio_mixer),
5952 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5953 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5954 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5955 msm_routing_put_audio_mixer),
5956 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5957 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5958 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5959 msm_routing_put_audio_mixer),
5960 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5961 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
5962 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5963 msm_routing_put_audio_mixer),
5964};
5965
5966static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
5967 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5969 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
5971 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5973 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
5975 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5977 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
5979 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5981 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
5983 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5984 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5985 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
5987 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5988 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5989 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
5991 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5992 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5993 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
5995 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5996 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
5997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
5999 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6000 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6001 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
6003 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6004 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6005 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
6007 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6008 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6009 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
6011 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6012 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6013 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6014 msm_routing_put_audio_mixer),
6015 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6016 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6017 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6018 msm_routing_put_audio_mixer),
6019 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6020 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6021 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6022 msm_routing_put_audio_mixer),
6023 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6024 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6025 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6026 msm_routing_put_audio_mixer),
6027 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6028 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6029 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6030 msm_routing_put_audio_mixer),
6031};
6032
6033static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6034 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6036 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
6038 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6040 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
6042 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6044 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
6046 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6048 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
6050 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6052 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
6054 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6056 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6060 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6064 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6068 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
6070 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6072 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6076 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
6078 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6080 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
6082 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6083 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6084 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6085 msm_routing_put_audio_mixer),
6086 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6087 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6088 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6089 msm_routing_put_audio_mixer),
6090 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6091 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6092 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6093 msm_routing_put_audio_mixer),
6094 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6095 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6096 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6097 msm_routing_put_audio_mixer),
6098};
6099
6100static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6101 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
6105 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6107 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
6109 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6111 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
6113 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6115 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
6117 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6119 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
6121 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6123 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
6125 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6127 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
6129 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6131 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6132 msm_routing_put_audio_mixer),
6133 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6135 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
6137 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6138 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6139 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6140 msm_routing_put_audio_mixer),
6141 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6142 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6143 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6144 msm_routing_put_audio_mixer),
6145 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6146 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6147 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6148 msm_routing_put_audio_mixer),
6149 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6151 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
6153 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6154 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6155 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6156 msm_routing_put_audio_mixer),
6157 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6158 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6159 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6160 msm_routing_put_audio_mixer),
6161 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6162 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6163 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6164 msm_routing_put_audio_mixer),
6165};
6166
6167static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6168 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6170 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
6172 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6174 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
6176 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6178 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
6180 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6182 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
6184 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6186 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
6188 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6190 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
6192 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6194 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
6196 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6198 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
6200 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6202 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
6204 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6206 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
6208 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6210 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
6212 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6214 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
6216 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6218 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
6220 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6222 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
6224 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6225 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6226 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6227 msm_routing_put_audio_mixer),
6228 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6229 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6230 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6231 msm_routing_put_audio_mixer),
6232};
6233
6234static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6235 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6237 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
6239 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6241 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
6243 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6245 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
6247 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6249 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
6251 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6253 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
6255 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6257 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
6259 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6261 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
6263 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6265 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
6267 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6269 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
6271 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6273 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
6275 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6277 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
6279 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6281 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
6283 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6285 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
6287 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6289 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
6291 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6293 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6294 msm_routing_put_audio_mixer),
6295 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6296 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6297 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6298 msm_routing_put_audio_mixer),
6299};
6300
6301static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6302 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6304 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
6306 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6308 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
6310 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6312 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
6314 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6316 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
6318 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6320 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
6322 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6324 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
6326 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6328 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
6330 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6332 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
6334 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6336 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
6338 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6340 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
6342 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6344 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
6346 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6348 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
6350 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6352 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
6354 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6356 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
6358 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6360 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
6362 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6364 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
6366};
6367
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306368static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006369 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006373 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006377 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006381 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006385 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006389 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006393 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306395 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006397 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006401 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306403 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006405 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306407 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006409 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306411 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006413 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306415 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006417 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306419 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006421 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306423 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006425 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306427 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006429 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306431 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
6433};
6434
6435static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006436 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6437 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306438 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006440 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306442 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006444 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306446 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006448 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6449 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306450 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006452 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6453 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306454 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006456 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6457 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306458 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006460 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6461 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306462 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006464 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306466 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006468 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306470 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006472 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306474 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006476 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306478 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006480 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306482 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006484 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306486 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006488 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306490 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006492 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306494 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006496 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306498 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
6500};
6501
6502static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006503 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6504 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306505 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006507 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6508 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306509 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006511 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306513 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006515 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6516 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006519 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6520 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306521 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006523 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6524 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306525 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006527 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6528 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306529 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006531 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6532 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306533 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006535 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006539 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6540 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306541 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006543 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6544 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306545 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006547 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6548 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306549 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006551 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6552 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306553 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006555 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6556 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306557 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006559 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306561 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006563 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306565 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006567 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306569 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006571 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6572 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306573 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006575 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6576 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306577 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006579 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6580 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306581 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006583 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6584 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306585 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6586 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306587};
6588
6589static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006590 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6591 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306592 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006594 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6595 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306596 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006598 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6599 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306600 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006602 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6603 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306604 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006606 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6607 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306608 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006610 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6611 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306612 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006614 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6615 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306616 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006618 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6619 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306620 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006622 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6623 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306624 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006626 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6627 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306628 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006630 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306632 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006634 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6635 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306636 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006638 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306640 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006642 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306644 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006646 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306648 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006650 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6651 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306652 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6653 msm_routing_put_audio_mixer),
6654};
6655
6656static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006657 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6658 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306659 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006661 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6662 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306663 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006665 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6666 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306667 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006669 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6670 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306671 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006673 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6674 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306675 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006677 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6678 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306679 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006681 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6682 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306683 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006685 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6686 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306687 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006689 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6690 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306691 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006693 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6694 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306695 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006697 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6698 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306699 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006701 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6702 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306703 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006705 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6706 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306707 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006709 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6710 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306711 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006713 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6714 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306715 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006717 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6718 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306719 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006721 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6722 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306723 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006725 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6726 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306727 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006729 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6730 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306731 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006733 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6734 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306735 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006737 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6738 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306739 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6740 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306741};
6742
6743static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006744 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306746 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006748 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306750 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006752 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306754 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006756 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306758 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006760 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306762 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006764 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6765 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306766 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006768 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306770 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006772 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306774 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006776 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306778 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006780 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306782 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006784 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006788 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006792 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006796 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306798 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006800 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6801 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306802 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006804 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6805 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306806 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006808 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6809 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306810 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006812 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6813 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306814 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006816 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6817 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306818 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006820 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6821 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306822 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006824 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6825 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306826 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6827 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306828};
6829
6830static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006831 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6832 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306833 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006835 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6836 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306837 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006839 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6840 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306841 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6842 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006843 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6844 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306845 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6846 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006847 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6848 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306849 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6850 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006851 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6852 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306853 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6854 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006855 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6856 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306857 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6858 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006859 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6860 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306861 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6862 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006863 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6864 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306865 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6866 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006867 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6868 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306869 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6870 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006871 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6872 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306873 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6874 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006875 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6876 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306877 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006879 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6880 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306881 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006883 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6884 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306885 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006887 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6888 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306889 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006891 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6892 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306893 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006895 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6896 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306897 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006899 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6900 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306901 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006903 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6904 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306905 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6906 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006907 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6908 MSM_BACKEND_DAI_AUXPCM_RX,
6909 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
6910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006911 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6912 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306913 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006915 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6916 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306917 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6918 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306919};
6920
6921static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006922 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006926 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006930 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006934 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6935 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306936 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6937 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006938 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6939 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306940 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6941 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006942 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6943 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306944 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6945 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006946 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6947 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306948 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6949 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006950 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6951 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306952 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6953 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006954 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6955 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306956 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6957 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006958 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6959 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306960 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6961 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006962 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6963 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306964 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006966 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6967 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306968 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006970 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6971 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306972 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006974 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6975 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306976 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006978 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6979 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306980 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006982 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6983 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306984 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006986 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6987 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306988 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006990 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6991 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306992 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006994 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6995 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306996 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6997 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07006998 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
6999 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7000 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007002 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7003 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307004 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007006 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7007 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307008 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7009 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010};
7011
7012static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007013 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7014 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307015 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007017 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7018 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307019 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007021 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7022 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307023 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007025 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7026 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307027 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007029 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7030 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307031 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007033 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7034 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307035 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007037 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7038 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307039 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007041 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7042 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307043 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007045 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7046 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307047 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007049 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7050 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307051 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007053 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7054 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307055 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007057 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7058 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307059 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007061 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7062 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307063 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007065 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7066 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307067 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007069 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7070 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307071 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007073 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7074 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307075 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7076 msm_routing_put_audio_mixer),
7077};
7078
7079static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007080 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7081 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307082 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007084 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7085 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307086 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007088 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7089 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307090 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007092 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7093 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307094 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007096 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7097 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307098 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007100 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7101 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307102 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007104 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7105 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307106 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007108 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7109 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307110 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007112 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7113 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307114 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007116 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7117 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307118 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007120 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7121 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307122 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007124 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7125 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307126 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007128 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7129 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307130 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007132 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7133 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307134 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007136 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7137 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307138 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007140 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7141 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307142 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7143 msm_routing_put_audio_mixer),
7144};
7145
Rohit Kumara5077932017-09-10 22:05:05 +05307146static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007147 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307149 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007151 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307153 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007159 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7160 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307161 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007163 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7164 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307165 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007167 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7168 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307169 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007171 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7172 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307173 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007175 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7176 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307177 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007179 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7180 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307181 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007183 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7184 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307185 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007187 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7188 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307189 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007191 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7192 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307193 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007195 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7196 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307197 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007199 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7200 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307201 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007203 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7204 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307205 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007207 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7208 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307209 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7210 msm_routing_put_audio_mixer),
7211};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307212static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007213 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7214 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007217 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7218 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307219 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007221 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7222 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307223 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007225 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7226 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007229 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7230 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007233 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7234 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007237 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007241 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007245 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007249 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007253 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307255 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007257 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307259 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007261 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7262 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307263 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007265 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7266 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007269 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7270 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307271 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007273 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7274 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7276 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007277 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7278 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7279 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7280 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307281};
7282
7283static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007284 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7285 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307286 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007288 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7289 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307290 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007292 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7293 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307294 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007296 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7297 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307298 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007300 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7301 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307302 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007304 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7305 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307306 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007308 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7309 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307310 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007312 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7313 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307314 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007316 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7317 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307318 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7319 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007320 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7321 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307322 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7323 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007324 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7325 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307326 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7327 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007328 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7329 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307330 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007332 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7333 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307334 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007336 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7337 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307338 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007340 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7341 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307342 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007344 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7345 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307346 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7347 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007348 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7349 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7350 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7351 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307352};
7353
7354static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007355 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307357 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007359 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7360 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307361 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007363 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7364 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307365 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007367 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7368 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307369 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007371 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7372 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307373 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007375 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7376 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307377 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007379 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7380 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307381 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007383 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7384 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007387 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7388 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307389 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007391 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7392 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307393 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007395 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7396 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307397 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007399 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307401 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007403 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7404 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307405 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007407 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7408 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307409 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007411 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7412 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307413 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007415 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7416 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307417 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7418 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007419 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7420 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7421 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7422 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307423};
7424
7425static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007426 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007430 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307432 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007434 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7435 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307436 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007438 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7439 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307440 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007442 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7443 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307444 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007446 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7447 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307448 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007450 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7451 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307452 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007454 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7455 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307456 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007458 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7459 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307460 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007462 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7463 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307464 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007466 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7467 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307468 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007470 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7471 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307472 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007474 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7475 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307476 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007478 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7479 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307480 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007482 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7483 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307484 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007486 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7487 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307488 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7489 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007490 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7491 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7492 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7493 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307494};
7495
7496static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007497 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007501 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307503 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007505 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7506 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007509 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7510 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307511 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007513 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7514 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307515 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007517 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7518 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307519 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007521 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7522 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307523 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007525 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7526 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307527 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007529 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7530 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307531 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007533 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7534 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307535 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007537 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7538 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307539 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007541 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7542 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307543 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007545 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7546 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307547 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007549 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7550 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307551 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007553 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7554 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307555 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007557 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7558 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307559 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7560 msm_routing_put_audio_mixer),
7561};
7562
7563static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007564 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007568 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307570 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007572 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307574 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007576 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307578 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007580 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307582 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007584 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7585 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307586 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007588 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7589 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307590 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007592 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7593 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307594 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007596 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7597 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307598 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007600 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7601 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307602 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007604 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7605 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307606 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007608 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7609 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307610 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007612 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7613 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307614 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007616 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7617 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307618 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007620 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7621 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307622 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007624 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7625 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307626 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7627 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007628 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7629 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7630 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7631 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307632};
7633
7634static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007635 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307637 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007639 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307641 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007643 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007647 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007651 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7652 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307653 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007655 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7656 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307657 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007659 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7660 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307661 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007663 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7664 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307665 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007667 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7668 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307669 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007671 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7672 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307673 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007675 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7676 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307677 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007679 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7680 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307681 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007683 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7684 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307685 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007687 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7688 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307689 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007691 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7692 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307693 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007695 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7696 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307697 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7698 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007699 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7700 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7701 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7702 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307703};
7704
7705static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007706 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7707 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307708 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007710 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7711 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307712 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007714 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7715 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307716 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007718 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7719 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307720 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007722 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7723 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307724 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007726 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7727 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307728 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007730 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7731 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307732 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007734 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307736 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007738 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307740 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007742 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307744 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007746 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307748 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007750 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7751 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307752 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007754 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7755 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307756 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007758 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7759 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307760 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007762 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7763 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307764 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007766 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7767 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307768 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7769 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007770 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7771 MSM_BACKEND_DAI_SEC_TDM_RX_2,
7772 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7773 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307774};
7775
7776static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007777 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7778 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307779 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007781 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7782 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307783 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007785 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7786 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307787 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007789 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7790 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307791 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007793 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7794 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307795 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007797 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7798 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307799 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007801 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7802 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307803 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007805 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307807 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007809 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307811 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007813 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307815 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007817 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7818 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307819 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007821 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7822 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307823 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007825 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7826 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307827 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007829 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7830 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307831 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007833 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7834 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307835 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007837 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7838 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307839 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7840 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007841 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7842 MSM_BACKEND_DAI_SEC_TDM_RX_3,
7843 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7844 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307845};
7846
7847static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007848 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7849 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307850 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007852 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7853 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307854 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007856 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7857 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307858 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007860 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7861 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307862 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007864 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7865 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307866 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007868 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7869 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307870 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007872 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7873 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307874 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007876 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7877 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307878 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007880 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7881 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307882 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007884 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7885 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307886 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007888 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7889 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307890 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007892 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7893 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307894 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007896 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7897 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307898 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007900 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7901 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307902 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007904 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7905 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307906 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007908 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7909 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307910 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7911 msm_routing_put_audio_mixer),
7912};
7913
7914static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007915 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7916 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307917 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007919 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7920 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307921 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007923 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7924 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307925 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007927 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7928 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307929 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007931 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7932 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007935 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7936 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307937 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007939 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7940 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307941 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007943 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7944 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307945 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007947 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7948 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307949 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007951 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7952 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307953 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007955 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7956 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307957 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007959 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7960 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307961 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007963 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7964 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307965 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007967 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7968 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307969 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007971 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7972 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307973 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007975 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7976 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307977 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7978 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007979 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7980 MSM_BACKEND_DAI_TERT_TDM_RX_0,
7981 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7982 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307983};
7984
7985static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007986 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7987 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307988 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007990 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7991 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307992 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007994 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7995 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307996 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007998 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7999 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308000 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008002 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8003 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308004 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008006 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8007 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308008 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008010 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8011 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308012 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008014 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8015 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308016 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008018 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8019 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308020 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008022 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8023 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308024 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8025 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008026 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8027 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308028 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8029 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008030 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8031 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308032 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8033 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008034 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8035 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308036 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8037 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008038 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8039 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308040 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8041 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008042 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8043 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308044 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8045 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008046 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8047 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308048 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8049 msm_routing_put_audio_mixer),
8050};
8051
8052static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008053 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8054 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308055 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008057 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8058 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308059 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008061 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8062 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308063 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008065 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8066 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308067 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008069 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8070 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308071 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008073 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8074 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308075 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008077 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8078 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308079 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008081 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8082 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308083 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008085 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308087 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008089 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8090 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308091 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008093 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8094 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308095 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008097 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8098 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308099 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008101 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8102 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308103 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008105 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8106 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308107 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008109 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8110 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308111 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008113 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8114 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8116 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008117 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8118 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8119 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8120 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121};
8122
8123static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008124 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8125 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308126 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008128 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8129 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308130 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008132 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8133 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308134 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008136 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8137 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308138 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008140 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8141 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308142 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008144 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8145 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308146 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008148 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8149 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308150 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008152 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8153 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308154 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008156 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8157 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308158 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008160 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8161 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308162 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008164 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8165 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308166 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008168 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8169 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308170 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008172 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8173 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308174 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008176 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8177 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308178 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008180 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8181 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308182 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008184 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8185 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308186 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8187 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008188 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8189 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8190 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8191 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308192};
8193
8194static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008195 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308197 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008199 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8200 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308201 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008203 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8204 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308205 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008207 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8208 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308209 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008211 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8212 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308213 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008215 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8216 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308217 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008219 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8220 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308221 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008223 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8224 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308225 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008227 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308229 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008231 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8232 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308233 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008235 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8236 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308237 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008239 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8240 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308241 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008243 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8244 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308245 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008247 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8248 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308249 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008251 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8252 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308253 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008255 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8256 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308257 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8258 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008259 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8260 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8261 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8262 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308263};
8264
8265static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008266 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008270 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8271 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308272 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008274 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8275 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308276 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008278 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8279 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008282 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8283 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308284 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008286 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8287 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308288 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008290 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8291 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308292 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008294 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008298 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308300 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008302 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308304 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008306 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8307 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308308 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008310 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8311 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308312 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008314 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8315 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308316 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008318 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8319 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308320 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008322 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8323 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308324 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008326 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8327 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8329 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008330 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8331 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8332 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8333 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308334};
8335
8336static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008337 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8338 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308339 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008341 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8342 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308343 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008345 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8346 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308347 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008349 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8350 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308351 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008353 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8354 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308355 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008357 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8358 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308359 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008361 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8362 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308363 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008365 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8366 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308367 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008369 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308371 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008373 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8374 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308375 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008377 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8378 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308379 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008381 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8382 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308383 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008385 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8386 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308387 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008389 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8390 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308391 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008393 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8394 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308395 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008397 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8398 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308399 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008401 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8402 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8404 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008405 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8406 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8407 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8408 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308409};
8410
8411static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008412 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8413 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308414 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008416 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8417 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308418 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008420 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8421 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308422 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008424 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8425 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308426 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008428 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8429 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308430 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008432 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8433 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308434 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008436 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8437 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308438 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008440 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308442 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008444 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8445 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308446 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8447 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008448 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8449 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308450 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8451 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008452 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8453 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308454 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8455 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008456 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8457 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308458 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8459 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008460 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8461 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308462 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8463 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008464 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8465 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308466 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8467 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008468 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8469 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308470 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8471 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008472 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8473 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308474 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8475 msm_routing_put_audio_mixer),
8476};
8477
8478static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008479 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8480 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308481 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008483 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8484 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308485 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008487 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8488 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308489 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008491 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8492 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308493 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008495 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8496 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308497 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008499 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8500 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308501 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008503 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8504 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008507 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008511 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308513 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008515 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8516 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308517 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008519 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8520 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308521 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008523 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8524 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308525 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008527 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8528 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308529 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008531 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8532 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308533 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008535 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8536 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308537 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008539 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8540 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308541 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008543 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8544 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308545 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8546 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008547 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8548 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8549 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8550 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308551};
8552
8553static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008554 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8555 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308556 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008558 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8559 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308560 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008562 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8563 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308564 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008566 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8567 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308568 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008570 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8571 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308572 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008574 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8575 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008578 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8579 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008582 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8583 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308584 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008586 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8587 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308588 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008590 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8591 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008594 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8595 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308596 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008598 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8599 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308600 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008602 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8603 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308604 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008606 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8607 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308608 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008610 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008614 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008618 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008622 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8624 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308626};
8627
8628static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008629 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8630 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308631 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008633 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8634 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308635 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008637 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8638 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308639 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008641 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8642 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308643 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008645 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8646 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308647 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008649 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8650 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308651 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008653 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8654 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308655 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008657 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8658 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308659 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008661 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8662 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308663 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008665 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8666 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308667 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008669 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8670 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308671 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008673 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8674 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308675 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008677 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8678 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308679 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008681 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008685 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008689 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008693 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008697 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8699 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701};
8702
Rohit Kumara5077932017-09-10 22:05:05 +05308703static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008704 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8705 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308706 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008708 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8709 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308710 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008712 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8713 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308714 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008716 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8717 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308718 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008720 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8721 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308722 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008724 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8725 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308726 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008728 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8729 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308730 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008732 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8733 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308734 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008736 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8737 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308738 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008740 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8741 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308742 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008744 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8745 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308746 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008748 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8749 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308750 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008752 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8753 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308754 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008756 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8757 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308758 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008760 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8761 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308762 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008764 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8765 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308766 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008768 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8769 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308770 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8771 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008772 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8773 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
8774 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8775 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308776};
8777
8778static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008779 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308781 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008783 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008787 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008791 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308793 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008795 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8796 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308797 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008799 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008803 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008807 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8808 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308809 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8810 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008811 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8812 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308813 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8814 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008815 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8816 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308817 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8818 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008819 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8820 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308821 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8822 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008823 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8824 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308825 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8826 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008827 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8828 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308829 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8830 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008831 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8832 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308833 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8834 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008835 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8836 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308837 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8838 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008839 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8840 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308841 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8842 msm_routing_put_audio_mixer),
8843};
8844
8845static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008846 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008850 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008854 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008858 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008862 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308864 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008866 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308868 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008870 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008874 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008878 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308880 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008882 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8883 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308884 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8885 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008886 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8887 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308888 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8889 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008890 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8891 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308892 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8893 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008894 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8895 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308896 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8897 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008898 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008902 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008906 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308908 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008910 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8911 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308912 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8913 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008914 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8915 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
8916 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8917 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308918};
8919
8920static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008921 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308923 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008925 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8926 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308927 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008933 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8934 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308935 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008937 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8938 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308939 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008941 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8942 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308943 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008945 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8946 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308947 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008949 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308951 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008953 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308955 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008957 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8958 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308959 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008961 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8962 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308963 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008965 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8966 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308967 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008969 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8970 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308971 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008973 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008977 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308979 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008981 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8982 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308983 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008985 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008989 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
8991 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05308993};
8994
8995static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008996 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308998 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009000 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9001 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009004 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9005 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309006 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009008 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9009 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009012 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9013 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309014 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009028 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009032 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9033 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309034 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009036 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9037 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309038 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009040 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9041 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309042 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009044 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9045 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309046 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009048 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9049 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309050 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009052 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9053 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309054 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009056 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9057 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309058 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009060 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9061 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309062 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9063 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009064 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9065 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9066 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9067 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309068};
9069
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309070static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009071 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9072 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309073 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009075 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9076 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309077 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009079 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9080 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309081 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009083 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9084 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309085 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009087 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9088 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309089 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009091 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9092 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309093 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009095 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9096 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009099 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9100 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309101 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009103 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9104 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309105 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009107 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9108 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309109 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009111 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9112 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309113 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009115 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9116 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309117 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009119 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9120 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309121 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009123 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9124 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009127 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9128 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309129 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009131 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9132 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309133 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009135 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9136 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309137 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009139 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9140 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309141 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009143 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9144 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309145 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009147 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9148 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309149 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009151 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9152 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309153 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009155 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9156 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309157 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009159 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9160 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309161 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009163 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9164 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309165 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009167 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9168 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309169 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009171 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9172 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309173 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009175 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9176 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009179 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9180 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309181 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009183 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9184 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309185 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009187 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9188 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309189 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009191 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9192 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309193 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009195 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9196 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309197 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009199 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9200 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309201 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009203 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9204 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309205 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009207 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9208 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309209 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009211 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9212 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309213 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009215 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9216 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309217 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009219 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9220 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309221 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009223 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9224 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309225 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009227 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9228 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309229 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009231 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9232 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309233 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009235 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9236 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309237 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009239 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9240 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309241 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009243 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9244 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309245 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009247 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9248 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309249 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9250 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309251 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9252 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9253 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9254 msm_routing_put_audio_mixer),
9255 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9257 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
9259 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9261 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
9263 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9265 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
9267 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9269 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309271 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9273 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
9275 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9277 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
9279 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9281 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
9283 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9285 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
9287 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9289 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
9291 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9293 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009295 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9297 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
9299 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9301 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309303};
9304
9305static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009306 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9307 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309308 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9309 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009310 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9311 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309312 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9313 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009314 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9315 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309316 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9317 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009318 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9319 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309320 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9321 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009322 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9323 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309324 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9325 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009326 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9327 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309328 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9329 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009330 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9331 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309332 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9333 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009334 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9335 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309336 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9337 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009338 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9339 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309340 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9341 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009342 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9343 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309344 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9345 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009346 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9347 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309348 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9349 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009350 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9351 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309352 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9353 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009354 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9355 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309356 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009358 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009362 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009366 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009370 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009374 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009378 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009382 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009386 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009390 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309392 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009394 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009398 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009402 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009406 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009410 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009414 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009418 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009422 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009426 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009430 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309432 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009434 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309436 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009438 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309440 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309442 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9444 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
9446 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9448 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
9450 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9452 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
9454 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9456 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
9458 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9460 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309462 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9464 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
9466 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9467 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9468 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9469 msm_routing_put_audio_mixer),
9470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9472 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9473 msm_routing_put_audio_mixer),
9474 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9475 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9476 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
9478 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9479 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9480 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9481 msm_routing_put_audio_mixer),
9482 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9483 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9484 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9485 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009486 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9487 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9488 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9489 msm_routing_put_audio_mixer),
9490 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9491 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9492 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9493 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309494};
9495
9496static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009497 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9498 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009501 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9502 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309503 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009505 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9506 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009509 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009513 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309515 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009517 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309519 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009521 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309523 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009525 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309527 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009529 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309531 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009533 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309535 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009537 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309539 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009541 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309543 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009545 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309547 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009549 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9550 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309551 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009553 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9554 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309555 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009557 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9558 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309559 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009561 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9562 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309563 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009565 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9566 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309567 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009569 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9570 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309571 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009573 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9574 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309575 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009577 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9578 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309579 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009581 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9582 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309583 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009585 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9586 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309587 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009589 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9590 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309591 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009593 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009597 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009601 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009605 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009609 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009613 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309615 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009617 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009621 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009625 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009629 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309633 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9635 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
9637 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9639 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
9641 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9643 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
9645 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9647 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
9649 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9651 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309653 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9655 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
9657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9659 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
9661 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9663 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
9665 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9667 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
9669 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9671 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
9673 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9675 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009677 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9679 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
9681 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9683 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309685};
9686
9687static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009688 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9689 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309690 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009692 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9693 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309694 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009696 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309698 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009700 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309702 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009704 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309706 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009708 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309710 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009712 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309714 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009716 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309718 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009720 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309722 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009724 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309726 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009728 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9729 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309730 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9731 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009732 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9733 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309734 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9735 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009736 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9737 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309738 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9739 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009740 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9741 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309742 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9743 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009744 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9745 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309746 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009748 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9749 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309750 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009752 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9753 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309754 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009756 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9757 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009760 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9761 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309762 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009764 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9765 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309766 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009768 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9769 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309770 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009772 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9773 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009776 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9777 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309778 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009780 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309782 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009784 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309786 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009788 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309790 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009792 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309794 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009796 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009800 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009804 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009808 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009812 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309814 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009816 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9817 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309818 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9819 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309820 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9821 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9822 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9823 msm_routing_put_audio_mixer),
9824 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9825 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9826 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9827 msm_routing_put_audio_mixer),
9828 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9829 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9830 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9831 msm_routing_put_audio_mixer),
9832 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9833 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9834 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9835 msm_routing_put_audio_mixer),
9836 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9837 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9838 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9839 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309840 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9841 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9842 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9843 msm_routing_put_audio_mixer),
9844 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9845 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9846 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9847 msm_routing_put_audio_mixer),
9848 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9849 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9850 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9851 msm_routing_put_audio_mixer),
9852 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9853 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9854 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9855 msm_routing_put_audio_mixer),
9856 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9857 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9858 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9859 msm_routing_put_audio_mixer),
9860 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9861 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9862 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9863 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009864 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9866 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9867 msm_routing_put_audio_mixer),
9868 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9870 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9871 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309872};
9873
9874static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009875 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9876 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309877 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9878 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009879 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9880 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309881 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9882 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009883 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9884 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309885 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9886 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009887 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9890 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009891 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009895 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009899 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309901 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009903 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309905 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009907 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9908 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309909 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009911 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309913 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009915 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309917 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009919 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309921 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009923 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309925 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009927 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309929 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009931 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9932 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309933 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009935 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9936 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309937 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009939 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9940 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309941 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009943 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9944 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309945 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009947 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9948 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309949 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009951 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9952 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309953 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9954 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009955 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9956 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309957 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9958 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009959 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9960 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309961 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9962 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009963 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9964 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309965 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9966 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009967 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9968 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309969 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9970 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009971 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9972 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309973 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9974 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009975 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9976 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309977 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9978 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009979 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9980 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309981 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9982 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009983 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9984 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309985 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9986 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009987 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9988 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9990 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009991 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9992 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309993 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9994 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009995 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9996 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309997 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9998 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009999 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10000 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010001 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10002 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010003 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10004 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010005 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10006 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010007 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010009 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10010 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010011 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010013 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10014 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010015 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010017 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10018 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010019 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010021 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10022 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010023 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10024 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010025 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10026 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010027 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10028 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010029 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10030 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010031 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10032 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10033 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10034 msm_routing_put_audio_mixer),
10035 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10036 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10037 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10038 msm_routing_put_audio_mixer),
10039 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10040 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10041 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10042 msm_routing_put_audio_mixer),
10043 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10044 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10045 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10046 msm_routing_put_audio_mixer),
10047 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10048 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10049 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10050 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010051 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10052 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10053 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10054 msm_routing_put_audio_mixer),
10055 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10056 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10057 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10058 msm_routing_put_audio_mixer),
10059 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10060 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10061 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10062 msm_routing_put_audio_mixer),
10063 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10064 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10065 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10066 msm_routing_put_audio_mixer),
10067 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10068 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10069 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10070 msm_routing_put_audio_mixer),
10071 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10073 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10074 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010075 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10077 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10078 msm_routing_put_audio_mixer),
10079 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10081 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10082 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010083};
10084
10085static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010086 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10087 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010088 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10089 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010090 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10091 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010092 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10093 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010094 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010096 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10097 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010098 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010100 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10101 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010102 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010104 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010106 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010108 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010110 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010112 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010114 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10115 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010116 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010118 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010120 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010122 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010124 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010126 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010128 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010130 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010132 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010134 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010136 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010138 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10139 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010140 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010142 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10143 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010144 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010146 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10147 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010148 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010150 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10151 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010152 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010154 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10155 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010156 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010158 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10159 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010160 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010162 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10163 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010164 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010166 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10167 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010168 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010170 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10171 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010172 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010174 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10175 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010176 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010178 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10179 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010180 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010182 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10183 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010186 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10187 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010190 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10191 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010194 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10195 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010198 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10199 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010200 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010202 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10203 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010204 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010206 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10207 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010208 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010210 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10211 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010212 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010214 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10215 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010216 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010218 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10219 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010220 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10221 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010222 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10223 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10224 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10225 msm_routing_put_audio_mixer),
10226 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10227 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10228 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10229 msm_routing_put_audio_mixer),
10230 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10231 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10232 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10233 msm_routing_put_audio_mixer),
10234 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10235 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10236 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10237 msm_routing_put_audio_mixer),
10238 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10239 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10240 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10241 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10244 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10245 msm_routing_put_audio_mixer),
10246 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10247 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10248 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10249 msm_routing_put_audio_mixer),
10250 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10251 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10252 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10253 msm_routing_put_audio_mixer),
10254 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10255 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10256 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10257 msm_routing_put_audio_mixer),
10258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10260 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10261 msm_routing_put_audio_mixer),
10262 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10263 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10264 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10265 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010266 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10267 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10268 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10269 msm_routing_put_audio_mixer),
10270 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10271 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10272 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10273 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010274};
10275
10276static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010277 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10278 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010279 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010281 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10282 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010283 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010285 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10286 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010287 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010289 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10290 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010291 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010293 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10294 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010295 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010297 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10298 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010299 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010301 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10302 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010303 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010305 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10306 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010307 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010309 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10310 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010311 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010313 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10314 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010315 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010317 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10318 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010319 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010321 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10322 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010323 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010325 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10326 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010327 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010329 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10330 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010331 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010333 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10334 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010335 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010337 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10338 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010341 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10342 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010343 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010345 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10346 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010347 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010349 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10350 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010351 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010353 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10354 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010355 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010357 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10358 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010359 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010361 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10362 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010363 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010365 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10366 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010367 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010369 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10370 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010371 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010373 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10374 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010375 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010377 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10378 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010379 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010381 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10382 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010383 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010385 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10386 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010387 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010389 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10390 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010391 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010393 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10394 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010395 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10396 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010397 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10398 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10400 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010401 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10402 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010403 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10404 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010405 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10406 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010407 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10408 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010409 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010411 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10412 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010413 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010415 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10416 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010417 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10419 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10420 msm_routing_put_audio_mixer),
10421 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10423 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10424 msm_routing_put_audio_mixer),
10425 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10426 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10427 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10428 msm_routing_put_audio_mixer),
10429 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10430 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10431 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10432 msm_routing_put_audio_mixer),
10433 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10434 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10435 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10436 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010437 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10438 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10439 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10440 msm_routing_put_audio_mixer),
10441 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10442 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10443 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10444 msm_routing_put_audio_mixer),
10445 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10446 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10447 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10448 msm_routing_put_audio_mixer),
10449 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10450 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10451 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10452 msm_routing_put_audio_mixer),
10453 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10454 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10455 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10456 msm_routing_put_audio_mixer),
10457 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10458 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10459 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10460 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010461 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10462 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10463 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10464 msm_routing_put_audio_mixer),
10465 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10466 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10467 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10468 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469};
10470
Asish Bhattacharya34504582017-08-08 12:55:01 +053010471static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010472 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010474 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10475 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010476 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10477 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010478 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10479 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010480 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10481 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010482 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10483 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010484 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10485 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010486 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10487 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010488 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10489 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010490 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10491 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010492 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10493 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010494 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10495 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010496 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10497 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010498 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10499 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010500 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10501 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010502 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10503 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010504 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10505 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010506 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10507 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010508 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10509 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010510 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10511 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010512 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10513 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010514 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10515 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010516 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010518 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10519 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010520 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10521 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010522 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10523 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010524 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10525 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010526 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10527 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010528 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10529 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010530 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10531 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010532 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10533 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010534 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10535 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010536 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10537 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010538 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10539 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010540 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10541 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010542 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010544 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10545 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010546 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010548 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10549 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010550 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010552 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10553 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010554 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010556 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10557 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010558 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010560 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10561 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010562 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010564 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10565 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010566 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010568 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10569 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010570 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010572 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10573 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010574 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010576 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10577 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010578 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010580 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10581 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010582 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010584 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10585 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010586 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010588 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10589 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010590 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010592 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10593 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010594 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010596 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10597 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010598 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010600 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010602 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010604 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010606 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010608 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010610 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10611 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010612 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10614 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10615 msm_routing_put_audio_mixer),
10616 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10618 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10619 msm_routing_put_audio_mixer),
10620 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10622 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10623 msm_routing_put_audio_mixer),
10624 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10626 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10627 msm_routing_put_audio_mixer),
10628 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10630 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10631 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010632 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10634 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10635 msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
10637 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10639 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10640 msm_routing_get_audio_mixer,
10641 msm_routing_put_audio_mixer),
10642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10644 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10645 msm_routing_get_audio_mixer,
10646 msm_routing_put_audio_mixer),
10647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10649 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10650 msm_routing_get_audio_mixer,
10651 msm_routing_put_audio_mixer),
10652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10654 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10655 msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
10657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10659 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10660 msm_routing_get_audio_mixer,
10661 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010662 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10663 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10664 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10665 msm_routing_put_audio_mixer),
10666 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10667 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10668 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10669 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010670};
10671
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010672static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010673 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010675 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010677 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010679 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010681 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010683 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010685 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010687 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010689 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010691 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10692 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010693 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010695 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10696 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010697 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10698 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010699 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10700 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010701 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10702 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010703 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10704 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010705 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10706 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010707 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10708 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010709 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10710 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010711 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10712 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010713 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10714 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010715 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10716 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010717 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10718 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010719 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10720 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010721 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10722 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010723 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10724 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010725 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10726 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010727 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10728 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010729 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10730 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010731 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10732 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010733 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10734 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010735 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10736 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010737 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10738 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010739 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10740 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010741 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10742 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010743 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10744 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010745 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10746 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010747 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10748 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010749 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10750 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010751 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10752 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010753 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10754 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10755 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10756 msm_routing_put_audio_mixer),
10757 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10758 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10759 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10760 msm_routing_put_audio_mixer),
10761 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10762 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10763 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10764 msm_routing_put_audio_mixer),
10765 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10766 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10767 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10768 msm_routing_put_audio_mixer),
10769 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10770 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10771 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10772 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010773 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10774 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10775 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10776 msm_routing_put_audio_mixer),
10777 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10778 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10779 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10780 msm_routing_put_audio_mixer),
10781 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10782 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10783 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10784 msm_routing_put_audio_mixer),
10785 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10786 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10787 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10788 msm_routing_put_audio_mixer),
10789 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10790 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10791 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10792 msm_routing_put_audio_mixer),
10793 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10794 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10795 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10796 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010797 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10798 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10799 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10800 msm_routing_put_audio_mixer),
10801 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10802 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10803 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10804 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010805};
10806
Laxminath Kasam38070be2017-08-17 18:21:59 +053010807static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010808 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010810 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010814 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010816 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010818 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010820 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010822 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010824 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010826 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010828 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010830 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010832 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010834 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010836 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010838 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010840 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070010842 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010844 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010846 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010848 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010850 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010852 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010854 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010856 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010858 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010860 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010862 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010864 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010866 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010868 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010870 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010872 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010874 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010876 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053010878 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010880 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010882 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010884 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010886 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010888 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010890 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010892 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010894 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010896 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010898 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010900 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010902 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10903 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010904 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010906 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010908 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070010910 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10911 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010912 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10915 msm_routing_put_audio_mixer),
10916 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10918 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10919 msm_routing_put_audio_mixer),
10920 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10922 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
10924 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10926 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10927 msm_routing_put_audio_mixer),
10928 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10930 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10931 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010932 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10934 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10935 msm_routing_get_audio_mixer,
10936 msm_routing_put_audio_mixer),
10937 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10939 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10940 msm_routing_get_audio_mixer,
10941 msm_routing_put_audio_mixer),
10942 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10943 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10944 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10945 msm_routing_get_audio_mixer,
10946 msm_routing_put_audio_mixer),
10947 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10949 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10950 msm_routing_get_audio_mixer,
10951 msm_routing_put_audio_mixer),
10952 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10953 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10954 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10955 msm_routing_get_audio_mixer,
10956 msm_routing_put_audio_mixer),
10957 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10959 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
10960 msm_routing_get_audio_mixer,
10961 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010962 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10963 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10964 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10965 msm_routing_put_audio_mixer),
10966 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10967 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10968 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
10969 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053010970};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010971static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010972 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10973 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010974 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010976 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10977 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010978 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010980 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10981 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053010982 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010984 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10985 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010986 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010988 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10989 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010990 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010992 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10993 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010994 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010996 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010998 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
10999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011000 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11003 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011004 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11005 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11006 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11007 msm_routing_put_audio_mixer),
11008 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11009 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11010 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11011 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011012 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11013 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11014 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11015 msm_routing_put_audio_mixer),
11016 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11017 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11018 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11019 msm_routing_put_audio_mixer),
11020 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11021 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11022 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11023 msm_routing_put_audio_mixer),
11024 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11025 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11026 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11027 msm_routing_put_audio_mixer),
11028 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11029 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11030 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11031 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011032 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11033 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11034 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11035 msm_routing_get_audio_mixer,
11036 msm_routing_put_audio_mixer),
11037 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11038 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11039 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11040 msm_routing_get_audio_mixer,
11041 msm_routing_put_audio_mixer),
11042 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11043 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11044 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11045 msm_routing_get_audio_mixer,
11046 msm_routing_put_audio_mixer),
11047 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11049 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11050 msm_routing_get_audio_mixer,
11051 msm_routing_put_audio_mixer),
11052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11054 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11055 msm_routing_get_audio_mixer,
11056 msm_routing_put_audio_mixer),
11057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11059 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11060 msm_routing_get_audio_mixer,
11061 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011062 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11063 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11064 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11065 msm_routing_put_audio_mixer),
11066 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11067 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11068 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11069 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011070};
11071
11072static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011073 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011075 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011077 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011079 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011081 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11082 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011083 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11084 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011085 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11087 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11088 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011089 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11090 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11091 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011093 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11094 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011095 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11096 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011097 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11098 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011099 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11100 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011101 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11102 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011103 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11104 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011105 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11106 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011107 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11108 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011109 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11110 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011111 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11112 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011113 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011115 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11116 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011117 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11118 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11119 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11120 msm_routing_put_audio_mixer),
11121 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11122 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11123 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11124 msm_routing_put_audio_mixer),
11125 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11126 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11127 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11128 msm_routing_put_audio_mixer),
11129 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11130 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11131 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11132 msm_routing_put_audio_mixer),
11133 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11134 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11135 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11136 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011137 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11138 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11139 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11140 msm_routing_get_audio_mixer,
11141 msm_routing_put_audio_mixer),
11142 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11143 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11144 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11145 msm_routing_get_audio_mixer,
11146 msm_routing_put_audio_mixer),
11147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11149 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11150 msm_routing_get_audio_mixer,
11151 msm_routing_put_audio_mixer),
11152 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11153 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11154 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11155 msm_routing_get_audio_mixer,
11156 msm_routing_put_audio_mixer),
11157 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11158 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11159 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11160 msm_routing_get_audio_mixer,
11161 msm_routing_put_audio_mixer),
11162 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11163 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11164 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11165 msm_routing_get_audio_mixer,
11166 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011167 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11169 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11170 msm_routing_put_audio_mixer),
11171 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11172 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11173 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11174 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011175};
11176
11177static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011178 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011180 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011182 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011184 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011186 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11187 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011188 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011190 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11191 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011192 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011194 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11195 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011196 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011198 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11199 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011200 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011202 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11203 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011204 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011206 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11207 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011208 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11209 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011210 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11211 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11212 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11213 msm_routing_put_audio_mixer),
11214 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11215 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11216 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011218 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11220 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11221 msm_routing_put_audio_mixer),
11222 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11223 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11224 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11225 msm_routing_put_audio_mixer),
11226 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11227 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11228 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11229 msm_routing_put_audio_mixer),
11230 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11231 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11232 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11233 msm_routing_put_audio_mixer),
11234 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11235 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11236 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011238 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11240 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11241 msm_routing_get_audio_mixer,
11242 msm_routing_put_audio_mixer),
11243 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11244 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11245 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11246 msm_routing_get_audio_mixer,
11247 msm_routing_put_audio_mixer),
11248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11250 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11251 msm_routing_get_audio_mixer,
11252 msm_routing_put_audio_mixer),
11253 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11254 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11255 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11256 msm_routing_get_audio_mixer,
11257 msm_routing_put_audio_mixer),
11258 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11259 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11260 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11261 msm_routing_get_audio_mixer,
11262 msm_routing_put_audio_mixer),
11263 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11265 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11266 msm_routing_get_audio_mixer,
11267 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011268 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11269 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11270 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11271 msm_routing_put_audio_mixer),
11272 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11273 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11274 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11275 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011276};
11277
11278static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011279 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011281 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011283 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011285 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011287 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11288 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011289 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011291 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11292 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011293 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11294 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011295 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11296 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011297 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11298 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011299 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11300 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011301 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11302 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011303 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11304 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011305 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11306 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011307 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11308 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011309 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11310 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011311 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11312 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011313 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11314 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011315 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11316 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011317 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11318 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011319 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11320 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011321 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11322 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011323 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011325 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011327 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011329 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011331 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11332 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011333 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011335 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011337 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011339 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11340 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011341 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011343 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11344 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011345 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011347 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11348 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011349 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011351 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11352 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011353 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011355 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11356 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011357 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011359 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11360 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011361 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011363 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11364 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011365 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011367 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011369 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011371 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011373 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011375 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011377 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11378 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011379 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11381 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11382 msm_routing_put_audio_mixer),
11383 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11385 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11386 msm_routing_put_audio_mixer),
11387 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11389 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11390 msm_routing_put_audio_mixer),
11391 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11393 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11394 msm_routing_put_audio_mixer),
11395 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11397 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11398 msm_routing_put_audio_mixer),
11399 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11401 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11402 msm_routing_put_audio_mixer),
11403 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11405 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11406 msm_routing_put_audio_mixer),
11407 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11409 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11410 msm_routing_put_audio_mixer),
11411 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11413 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11414 msm_routing_put_audio_mixer),
11415 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11417 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11418 msm_routing_put_audio_mixer),
11419 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11421 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11422 msm_routing_put_audio_mixer),
11423 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11425 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
11427 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11429 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11430 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011431};
11432
11433static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11434 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_AUXPCM_TX,
11436 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11437 msm_routing_put_audio_mixer),
11438 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11440 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
11442 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11444 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11445 msm_routing_put_audio_mixer),
11446 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11447 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11448 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11449 msm_routing_put_audio_mixer),
11450 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11452 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11453 msm_routing_put_audio_mixer),
11454 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11456 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11457 msm_routing_put_audio_mixer),
11458 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11460 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11461 msm_routing_put_audio_mixer),
11462 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11464 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11465 msm_routing_put_audio_mixer),
11466 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11468 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
11470 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11472 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11473 msm_routing_put_audio_mixer),
11474 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11476 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
11478 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11480 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
11482 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11484 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
11486 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11488 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
11490 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11492 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
11494 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11496 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
11498 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11500 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
11502 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11504 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
11506 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11508 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
11510 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11512 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
11514 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11516 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
11518 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11520 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11521 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011522 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011523 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11524 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011525 msm_routing_put_audio_mixer),
11526 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011527 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11528 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011529 msm_routing_put_audio_mixer),
11530 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011531 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11532 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011533 msm_routing_put_audio_mixer),
11534 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011535 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11536 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011537 msm_routing_put_audio_mixer),
11538 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011539 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11540 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011541 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011542 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011543 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11544 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11545 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011546 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011547 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11548 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11549 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011550 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011551 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11552 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11553 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011554 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011555 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11556 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11557 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011558 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011559 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11560 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11561 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011562 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011563 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11564 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11565 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011566 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11567 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011568 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011569 msm_routing_put_audio_mixer),
11570 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11571 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011572 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011573 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011574};
11575
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011576static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011577 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011579 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011581 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11582 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011583 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011585 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11586 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011587 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011589 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11590 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011591 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011593 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011595 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011597 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11598 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011599 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011601 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11602 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011603 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011605 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011607 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11608 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011609 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11610 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11611 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11612 msm_routing_put_audio_mixer),
11613 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11614 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11615 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11616 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011617 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11618 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11619 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11620 msm_routing_put_audio_mixer),
11621 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11622 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11623 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11624 msm_routing_put_audio_mixer),
11625 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11626 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11627 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11628 msm_routing_put_audio_mixer),
11629 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11630 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11631 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11632 msm_routing_put_audio_mixer),
11633 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11634 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11635 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11636 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011637 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11638 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11639 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11640 msm_routing_get_audio_mixer,
11641 msm_routing_put_audio_mixer),
11642 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11643 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11644 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11645 msm_routing_get_audio_mixer,
11646 msm_routing_put_audio_mixer),
11647 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11648 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11649 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11650 msm_routing_get_audio_mixer,
11651 msm_routing_put_audio_mixer),
11652 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11653 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11654 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11655 msm_routing_get_audio_mixer,
11656 msm_routing_put_audio_mixer),
11657 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11658 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11659 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11660 msm_routing_get_audio_mixer,
11661 msm_routing_put_audio_mixer),
11662 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11663 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11664 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11665 msm_routing_get_audio_mixer,
11666 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011667 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11668 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11669 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11670 msm_routing_put_audio_mixer),
11671 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11672 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11673 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11674 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011675};
11676
11677static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011678 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11679 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011680 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011682 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11683 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011684 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011686 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011688 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011690 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11691 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011692 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011694 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11695 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011696 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011698 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011700 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011702 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11703 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011704 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011706 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011708 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11709 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011710 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11711 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11712 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11713 msm_routing_put_audio_mixer),
11714 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11716 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011718 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11720 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
11722 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11724 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
11726 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11728 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11729 msm_routing_put_audio_mixer),
11730 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11732 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11733 msm_routing_put_audio_mixer),
11734 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11736 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011738 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11740 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11741 msm_routing_get_audio_mixer,
11742 msm_routing_put_audio_mixer),
11743 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11745 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11746 msm_routing_get_audio_mixer,
11747 msm_routing_put_audio_mixer),
11748 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11749 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11750 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11751 msm_routing_get_audio_mixer,
11752 msm_routing_put_audio_mixer),
11753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11755 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11756 msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
11758 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11760 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11761 msm_routing_get_audio_mixer,
11762 msm_routing_put_audio_mixer),
11763 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11764 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11765 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
11766 msm_routing_get_audio_mixer,
11767 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011768 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11770 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11771 msm_routing_put_audio_mixer),
11772 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11773 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11774 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11775 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011776};
11777
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011778static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011779 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011781 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11782 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011783 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011785 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11786 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011787 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11788 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011789 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11790 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011791 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11792 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011793 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11794 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011795 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11796 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011797 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11798 msm_routing_put_voice_mixer),
11799};
11800
11801static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011802 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11803 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011804 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11805 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011806 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011808 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11809 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011810 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11811 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011812 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11813 msm_routing_put_voice_mixer),
11814};
11815
11816static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011817 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11818 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011819 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11820 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011821 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011823 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11824 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011825 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11826 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011827 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11828 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011829 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011831 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11832 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011833 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11834 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011835 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11836 msm_routing_put_voice_mixer),
11837};
11838
11839static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011840 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11841 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011842 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11843 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011844 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11845 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011846 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11847 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011848 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11849 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011850 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11851 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011852 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11853 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011854 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11855 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011856 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11857 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011858 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11859 msm_routing_put_voice_mixer),
11860};
11861
11862static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011863 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11864MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011865 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11866 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011867 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11868MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011869 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11870 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011871 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11872MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011873 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11874 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011875 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11876MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011877 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11878 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011879 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11880MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011881 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11882 msm_routing_put_voice_mixer),
11883};
11884
11885static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011886 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11887 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011888 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11889 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011890 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11891 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011892 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11893 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011894 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11895 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011896 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11897 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011898 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11899 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011900 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11901 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011902 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11903 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011904 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11905 msm_routing_put_voice_mixer),
11906};
11907
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011908static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011909 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11910MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011911 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11912 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011913 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11914MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011915 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11916 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011917 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11918MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011919 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11920 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011921 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11922MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011923 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11924 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011925 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11926MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080011927 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11928 msm_routing_put_voice_mixer),
11929};
11930
Karthikeyan Mani57550082018-05-03 18:43:58 -070011931static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
11932 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11934 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11935 msm_routing_put_voice_mixer),
11936 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11938 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11939 msm_routing_put_voice_mixer),
11940 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11942 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11943 msm_routing_put_voice_mixer),
11944 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11946 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11947 msm_routing_put_voice_mixer),
11948 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
11950 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11951 msm_routing_put_voice_mixer),
11952};
11953
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011954static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011955 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11956 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011957 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11958 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011959 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11960 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011961 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11962 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011963 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11964 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011965 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11966 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011967 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11968 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011969 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11970 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011971 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11972 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011973 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11974 msm_routing_put_voice_mixer),
11975};
11976
11977static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011978 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
11979 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011980 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
11981 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011982 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
11983 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011984 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
11985 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011986 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
11987 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011988 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
11989 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011990 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
11991 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011992 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
11993 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011994 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011996 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
11997 msm_routing_put_voice_mixer),
11998};
11999
12000static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012001 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12002MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012003 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12004 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012005 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12006MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012007 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12008 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012009 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12010MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012011 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12012 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012013 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12014MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012015 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12016 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012017 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12018MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012019 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12020 msm_routing_put_voice_mixer),
12021};
12022
12023static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012024 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12025MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012026 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12027 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012028 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12029MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012030 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12031 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012032 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12033MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012034 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12035 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012036 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12037MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012038 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12039 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012040 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12041MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012042 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12043 msm_routing_put_voice_mixer),
12044};
12045
12046static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012047 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012049 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12050 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012051 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12052 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012053 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12054 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012055 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012057 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12058 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012059 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12060 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012061 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12062 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012063 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12064 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012065 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12066 msm_routing_put_voice_mixer),
12067};
12068
12069static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012070 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012072 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12073 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012074 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12075 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012076 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12077 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012078 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12079 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012080 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12081 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012082 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012084 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12085 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012086 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12087 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012088 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12089 msm_routing_put_voice_mixer),
12090};
12091
12092static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012093 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012095 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12096 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012097 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012099 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12100 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012101 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12102 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012103 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12104 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012105 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012107 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12108 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012109 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12110 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012111 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12112 msm_routing_put_voice_mixer),
12113};
12114
12115static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012116 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12117 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012118 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12119 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012120 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012122 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12123 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012124 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12125 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012126 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12127 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012128 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012130 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12131 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012132 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12133 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012134 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12135 msm_routing_put_voice_mixer),
12136};
12137
12138static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012139 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12140 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012141 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12142 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012143 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12144 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012145 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12146 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012147 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12148 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012149 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12150 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012151 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12152 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012153 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12154 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012155 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012157 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12158 msm_routing_put_voice_mixer),
12159};
12160
12161static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012162 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12163 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012164 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12165 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012166 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12167 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012168 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12169 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012170 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012172 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12173 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012174 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12175 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012176 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12177 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012178 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012180 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12181 msm_routing_put_voice_mixer),
12182};
12183
12184static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012185 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12186MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012187 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12188 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012189 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12190MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012191 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12192 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012193 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12194MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012195 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12196 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012197 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12198MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012199 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12200 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012201 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12202MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012203 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12204 msm_routing_put_voice_mixer),
12205};
12206
12207static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012208 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12209MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012210 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12211 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012212 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12213MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012214 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12215 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012216 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12217MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012218 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12219 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012220 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12221MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012222 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12223 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012224 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12225MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012226 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12227 msm_routing_put_voice_mixer),
12228};
12229
12230static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012231 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12232MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012233 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12234 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012235 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12236MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012237 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12238 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012239 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12240MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012241 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12242 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012243 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12244MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012245 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12246 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012247 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12248MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012249 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12250 msm_routing_put_voice_mixer),
12251};
12252
Rohit Kumara5077932017-09-10 22:05:05 +053012253static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012254 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12255MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012256 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12257 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012258 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12259MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012260 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12261 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012262 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12263MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012264 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12265 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012266 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12267MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012268 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12269 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012270 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12271MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012272 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12273 msm_routing_put_voice_mixer),
12274};
12275
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012276static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012277 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12278 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012279 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12280 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012281 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12282 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012283 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12284 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012285 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12286 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012287 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12288 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012289 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12290 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012291 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12292 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012293 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012295 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12296 msm_routing_put_voice_mixer),
12297};
12298
12299static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012300 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12301MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012302 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12303 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012304 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12305MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012306 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12307 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012308 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12309MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012310 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12311 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012312 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12313MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012314 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12315 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012316 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12317MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012318 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12319 msm_routing_put_voice_mixer),
12320};
12321
12322static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012323 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12324 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012325 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12326 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012327 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12328 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012329 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12330 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012331 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12332 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012333 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12334 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012335 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12336 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012337 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12338 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012339 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12340 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012341 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12342 msm_routing_put_voice_mixer),
12343};
12344
12345static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012346 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012348 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12349 msm_routing_put_voice_mixer),
12350};
12351
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012352static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12353 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12354 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12355 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12356 msm_routing_put_voice_mixer),
12357 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12358 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12359 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12360 msm_routing_put_voice_mixer),
12361 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12363 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12364 msm_routing_put_voice_mixer),
12365 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12366 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12367 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12368 msm_routing_put_voice_mixer),
12369 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12371 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12372 msm_routing_put_voice_mixer),
12373};
12374
12375static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12376 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12377 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12378 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12379 msm_routing_put_voice_mixer),
12380 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12381 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12382 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12383 msm_routing_put_voice_mixer),
12384 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12385 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12386 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12387 msm_routing_put_voice_mixer),
12388 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12389 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12390 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12391 msm_routing_put_voice_mixer),
12392 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12393 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12394 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12395 msm_routing_put_voice_mixer),
12396};
12397
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012398static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12399 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12400 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12401 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12402 msm_routing_put_voice_mixer),
12403 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12404 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12405 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12406 msm_routing_put_voice_mixer),
12407 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12408 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12409 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12410 msm_routing_put_voice_mixer),
12411 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12412 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12413 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12414 msm_routing_put_voice_mixer),
12415 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12416 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12417 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12418 msm_routing_put_voice_mixer),
12419};
12420
12421static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12422 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12424 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12425 msm_routing_put_voice_mixer),
12426 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12427 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12428 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12429 msm_routing_put_voice_mixer),
12430 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12431 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12432 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12433 msm_routing_put_voice_mixer),
12434 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12435 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12436 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12437 msm_routing_put_voice_mixer),
12438 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12439 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12440 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12441 msm_routing_put_voice_mixer),
12442};
12443
12444static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12445 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12446 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12447 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12448 msm_routing_put_voice_mixer),
12449 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12450 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12451 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12452 msm_routing_put_voice_mixer),
12453 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12454 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12455 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12456 msm_routing_put_voice_mixer),
12457 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12459 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12460 msm_routing_put_voice_mixer),
12461 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12462 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12463 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12464 msm_routing_put_voice_mixer),
12465};
12466
12467static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12468 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12469 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12470 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12471 msm_routing_put_voice_mixer),
12472 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12473 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12474 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12475 msm_routing_put_voice_mixer),
12476 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12477 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12478 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12479 msm_routing_put_voice_mixer),
12480 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12481 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12482 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12483 msm_routing_put_voice_mixer),
12484 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12486 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12487 msm_routing_put_voice_mixer),
12488};
12489
12490static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12491 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12492 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12493 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12494 msm_routing_put_voice_mixer),
12495 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12496 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12497 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12498 msm_routing_put_voice_mixer),
12499 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12501 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12502 msm_routing_put_voice_mixer),
12503 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12504 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12505 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12506 msm_routing_put_voice_mixer),
12507 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12508 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12509 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12510 msm_routing_put_voice_mixer),
12511};
12512
12513static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12514 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12515 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12516 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12517 msm_routing_put_voice_mixer),
12518 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12519 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12520 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12521 msm_routing_put_voice_mixer),
12522 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12524 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12525 msm_routing_put_voice_mixer),
12526 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12527 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12528 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12529 msm_routing_put_voice_mixer),
12530 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12531 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12532 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12533 msm_routing_put_voice_mixer),
12534};
12535
12536static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12537 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12538 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12539 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12540 msm_routing_put_voice_mixer),
12541 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12542 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12543 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12544 msm_routing_put_voice_mixer),
12545 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12546 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12547 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12548 msm_routing_put_voice_mixer),
12549 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12550 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12551 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12552 msm_routing_put_voice_mixer),
12553 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12554 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12555 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12556 msm_routing_put_voice_mixer),
12557};
12558
12559static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12560 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12562 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12563 msm_routing_put_voice_mixer),
12564 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12565 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12566 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12567 msm_routing_put_voice_mixer),
12568 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12569 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12570 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12571 msm_routing_put_voice_mixer),
12572 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12574 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12575 msm_routing_put_voice_mixer),
12576 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12577 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12578 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12579 msm_routing_put_voice_mixer),
12580};
12581
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012582static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012583 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12584 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012585 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12586 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012587 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12588 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012589 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12590 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012591};
12592
12593static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012594 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12595 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012596 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12597 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012598 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12599 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012600 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12601 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012602};
12603
12604static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012605 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12606 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012607 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12608 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012609 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12610 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012611 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12612 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012613};
12614
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012615static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012618 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12619 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012620 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12623 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012624 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12626 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012628 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12629 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012630 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012631 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12632 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012633 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012634 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12635 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012636 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12638 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012639 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012640 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12641 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012642 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012643 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12644 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012645 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012646 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12647 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012648 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012649 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12650 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012651 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12653 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012654 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012655 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12656 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012657 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012658 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12659 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012660 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012661 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12662 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012663 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12664 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012665 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12666 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012667 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12668MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012669 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012670 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12671 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12672 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12673 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12675 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012676 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12677 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12678 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12679 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
12680 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
12681 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12682 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode1", SND_SOC_NOPM,
12683 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE1,
12684 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12685 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode1", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
12687 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12688 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode1", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE1,
12690 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode1", SND_SOC_NOPM,
12692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
12693 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012694};
12695
12696static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012697 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
12698 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012699 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12700 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012701 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012703 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12704 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012705 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012706 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12707 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012708 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012709 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12710 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012711 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012712 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12713 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012714 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012715 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12716 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012717 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012718 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12719 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012720 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012721 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12722 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012723 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012724 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12725 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012726 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012727 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12728 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012729 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012730 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
12731 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012732 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012733 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12734 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012735 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012736 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
12737 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012738 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012739 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12740 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012741 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012742 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12743 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012744 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012745 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
12746 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012747 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12748 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12749 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12750 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12751 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12752 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012753 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
12754 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
12755 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12756 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
12757 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
12758 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12759 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_MMode2", SND_SOC_NOPM,
12760 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICEMMODE2,
12761 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12762 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_MMode2", SND_SOC_NOPM,
12763 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
12764 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12765 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_MMode2", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICEMMODE2,
12767 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12768 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_MMode2", SND_SOC_NOPM,
12769 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
12770 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012771};
12772
12773static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012774 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
12775 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012776 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12777 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012778 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012780 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12781 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012782 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
12783 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012784 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12785 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012786 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012788 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12789 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012790 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
12791 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012792 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12793 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012794 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
12795 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012796 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12797 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012798 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012800 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12801 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012802 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12803 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012804 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12805 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012806 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12807 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012808 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12809 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012810 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
12811 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012812 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12813 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012814 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
12815 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012816 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12817 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012818 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012820 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12821 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012822 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
12823 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012824 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12825 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012826 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
12827 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012828 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12829 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012830 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
12831 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012832 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12833 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012834 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
12835 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012836 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12837 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012838 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12839 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12840 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12841 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12843 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012844 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
12846 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12847 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
12848 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
12849 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12850 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_Voip", SND_SOC_NOPM,
12851 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOIP,
12852 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12853 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_Voip", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOIP,
12855 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12856 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_Voip", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOIP,
12858 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
12859 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_Voip", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
12861 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012862};
12863
12864static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012865 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12866 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012867 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12868 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012869 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12870 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12872 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012873 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12874 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012875 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12876 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012877 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12878 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012879 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12880 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012881 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
12882 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012883 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12884 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012885 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12886 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012887 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12888 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012889 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012891 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12892 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012893 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12894 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012895 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12896 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012897 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12898 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012899 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12900 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012901 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012903 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12904 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012905 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12906 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012907 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12908 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012909 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12910 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012911 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12912 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012913 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
12914 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012915 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12916 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012917 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053012919 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12920 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012921 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012923 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12924 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012925 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
12926 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012927 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12928 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012929 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12930 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012931 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12932 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012933 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
12934 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012935 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12936 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012937 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
12938 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012939 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12940 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012941 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12942 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12943 1, 0, msm_routing_get_voice_stub_mixer,
12944 msm_routing_put_voice_stub_mixer),
12945 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12946 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12947 1, 0, msm_routing_get_voice_stub_mixer,
12948 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012949 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12950 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
12951 1, 0, msm_routing_get_voice_stub_mixer,
12952 msm_routing_put_voice_stub_mixer),
12953 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12954 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
12955 1, 0, msm_routing_get_voice_stub_mixer,
12956 msm_routing_put_voice_stub_mixer),
12957 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12958 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
12959 1, 0, msm_routing_get_voice_stub_mixer,
12960 msm_routing_put_voice_stub_mixer),
12961 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12962 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
12963 1, 0, msm_routing_get_voice_stub_mixer,
12964 msm_routing_put_voice_stub_mixer),
12965 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12966 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
12967 1, 0, msm_routing_get_voice_stub_mixer,
12968 msm_routing_put_voice_stub_mixer),
12969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
12971 1, 0, msm_routing_get_voice_stub_mixer,
12972 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012973};
12974
12975static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012976 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
12977 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012978 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12979 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012980 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
12981 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12983 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012984 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012986 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12987 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012988 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12989 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012990 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12991 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012992 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012994 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12995 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012996 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
12997 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012998 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
12999 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013000 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013002 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13003 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013004 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013006 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13007 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013008 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13009 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013010 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13011 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013012 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013014 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13015 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013016 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13017 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013018 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13019 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013020 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13021 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013022 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13023 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13027 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013028 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13029 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013030 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13031 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013032 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13033 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13035 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013036 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13037 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13038 1, 0, msm_routing_get_voice_stub_mixer,
13039 msm_routing_put_voice_stub_mixer),
13040 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13041 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13042 1, 0, msm_routing_get_voice_stub_mixer,
13043 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013044 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13045 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13046 1, 0, msm_routing_get_voice_stub_mixer,
13047 msm_routing_put_voice_stub_mixer),
13048 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13049 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13050 1, 0, msm_routing_get_voice_stub_mixer,
13051 msm_routing_put_voice_stub_mixer),
13052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13054 1, 0, msm_routing_get_voice_stub_mixer,
13055 msm_routing_put_voice_stub_mixer),
13056 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13057 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13058 1, 0, msm_routing_get_voice_stub_mixer,
13059 msm_routing_put_voice_stub_mixer),
13060 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13061 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13062 1, 0, msm_routing_get_voice_stub_mixer,
13063 msm_routing_put_voice_stub_mixer),
13064 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13065 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13066 1, 0, msm_routing_get_voice_stub_mixer,
13067 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013068};
13069
13070static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013071 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13072 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013073 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13074 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013075 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13078 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013079 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13080 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013081 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13082 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013083 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013085 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13086 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013087 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013089 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13090 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013091 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13092 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013093 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13094 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013095 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013097 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13098 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013099 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13100 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013101 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13102 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013103 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13104 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013105 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13106 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013107 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013109 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13110 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013111 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13112 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013113 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13114 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013115 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13116 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013117 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13118 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013119 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13120 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013121 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13122 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013123 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013125 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13126 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013127 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013129 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13130 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013131 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13132 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13133 1, 0, msm_routing_get_voice_stub_mixer,
13134 msm_routing_put_voice_stub_mixer),
13135 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13137 1, 0, msm_routing_get_voice_stub_mixer,
13138 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013139 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13140 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13141 1, 0, msm_routing_get_voice_stub_mixer,
13142 msm_routing_put_voice_stub_mixer),
13143 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13144 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13145 1, 0, msm_routing_get_voice_stub_mixer,
13146 msm_routing_put_voice_stub_mixer),
13147 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13148 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13149 1, 0, msm_routing_get_voice_stub_mixer,
13150 msm_routing_put_voice_stub_mixer),
13151 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13152 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13153 1, 0, msm_routing_get_voice_stub_mixer,
13154 msm_routing_put_voice_stub_mixer),
13155 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13156 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13157 1, 0, msm_routing_get_voice_stub_mixer,
13158 msm_routing_put_voice_stub_mixer),
13159 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13160 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13161 1, 0, msm_routing_get_voice_stub_mixer,
13162 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013163};
13164
13165static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013166 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13167 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013168 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13169 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013170 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013172 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13173 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013174 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13176 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013177 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013178 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013180 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13181 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013182 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13183 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013184 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13185 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013186 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013188 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13189 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013190 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013192 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13193 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013194 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13195 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013196 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13197 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013198 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013200 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13201 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013202 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13203 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013204 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013206 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13207 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013208 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13209 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013210 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13211 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013212 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13213 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013214 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13215 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013216 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13217 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013218 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13219 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013220 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13221 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013222 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13223 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013224 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13225 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013226 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013228 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13229 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013230 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13232 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13233 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13234 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13235 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013236 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13238 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13239 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13240 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13241 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13242 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2_QCHAT", SND_SOC_NOPM,
13243 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_QCHAT,
13244 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13245 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3_QCHAT", SND_SOC_NOPM,
13246 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_QCHAT,
13247 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13248 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4_QCHAT", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_QCHAT,
13250 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13251 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5_QCHAT", SND_SOC_NOPM,
13252 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13253 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013254};
13255
13256static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013257 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13258 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013259 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013261 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013263 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013265 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13266 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013267 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013269 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13270 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013271 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013273 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013275 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13276 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013277 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13278 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013279 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013281 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013283 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13284 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013285 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13286 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013287 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013289 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13290 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013291 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13292 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013293 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013295 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13296 msm_routing_put_port_mixer),
13297};
13298
13299static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013300 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13301 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013302 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013304 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13305 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013306 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013308 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13309 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013310 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013312 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13313 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013314 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013316 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13317 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013318 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13319 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013320 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13321 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013322 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013324 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013326 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13327 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013328 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013330 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013332 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13333 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013334 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013336 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13337 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013338 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13339 msm_routing_put_port_mixer),
13340};
13341
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013342static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13343 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13345 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13346 msm_routing_put_port_mixer),
13347 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13349 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13350 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013351 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13353 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13354 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013355};
13356
13357static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13358 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13359 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13361 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013362 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13363 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13364 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13365 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013366};
13367
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013368static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013369 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013371 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13372 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013373 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13374 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013375 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013377 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13378 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013379 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13380 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013381 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013383 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13384 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013385 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13386 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013387 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013389 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013391 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13392 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013393 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13394 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013395 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013397 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13398 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013399 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13400 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013401 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013403 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13404 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013405 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13406 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013407 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013409 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013411 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13412 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013413 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13414 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013415 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013417 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13418 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013419 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13420 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013421 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013423 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13424 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013425 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13426 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013427 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013429 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13430 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013431 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13432 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013433 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13434 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013435 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013437 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13438 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013439 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13440 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013441 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13442 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013443 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013445 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13446 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013447 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013449 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13450 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013451 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13452 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013453 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13454 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13455MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013456 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013457};
13458
13459static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013460 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13461 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013462 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013464 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013466 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13467 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013468 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13469 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013470 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013472 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013474 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13475 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013476 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13477 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013478 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013480 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13481 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013482 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13483 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013484};
13485
13486static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013487 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013489 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13490 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013491 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13492 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013493 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013495 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13496 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013497 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13498 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013499 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013501 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13502 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013503};
13504
13505static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013506 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13507 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013508 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013510 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13511 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013512 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13513 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013514 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013516 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13517 msm_routing_put_port_mixer),
13518};
13519
13520static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013523 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013527 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13528 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13532 msm_routing_put_port_mixer),
13533};
13534
Rohit Kumara5077932017-09-10 22:05:05 +053013535static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013536 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13537 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013538 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013540 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13541 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013542 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13543 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013544 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13545 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013546 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13547 msm_routing_put_port_mixer),
13548};
13549
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013550static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013551 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013553 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013555 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013557 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13558 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013559 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013561 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013563 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013565 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013567 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13570 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013571 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013573 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13574 msm_routing_put_port_mixer),
13575};
13576
13577static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013578 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13581 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013582 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13583 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013584 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13585 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013586 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13587 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013588 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013590 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013592 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13593 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013594 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013596 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13597 msm_routing_put_port_mixer),
13598};
13599
13600static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013601 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13602 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013603 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013605 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13606 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013607 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13608 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013609 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13610 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013611 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013613 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13614 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013615 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13616 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013617 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13620 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013621 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013625 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13628 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013629 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013633 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013635 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13636 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013637 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013639 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013641 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013645 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013647 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13648 msm_routing_put_port_mixer),
13649};
13650
13651static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013652 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13653 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013654 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013656 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13657 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013658 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13659 msm_routing_put_port_mixer),
13660};
13661
13662static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13670 msm_routing_put_port_mixer),
13671};
13672
13673
13674static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013675 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013677 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13678 msm_routing_put_port_mixer),
13679};
13680
13681static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013682 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13685 msm_routing_put_port_mixer),
13686};
13687
Karthikeyan Mani57550082018-05-03 18:43:58 -070013688static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
13689 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
13691 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13692 msm_routing_put_port_mixer),
13693};
13694
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013695static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013696 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13697 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013698 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13699 msm_routing_put_port_mixer),
13700};
13701
13702static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013703 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13704 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013705 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13706 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013707 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13708 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013709 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13710 msm_routing_put_port_mixer),
13711};
13712
13713static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013714 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013716 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013718 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013720 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13721 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013722 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13723 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013724 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013726 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13727 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013728 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13729 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013730 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13731 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013732 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13733 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013734 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13735 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013736 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013738 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13739 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013740 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13741 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013742 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13743 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013746 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13747 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013748 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13749 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013750 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13751 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013752 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13753 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754};
13755
13756static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013757 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013759 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
13760 msm_routing_put_port_mixer),
13761};
13762
13763static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013764 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13765 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013766 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013768 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13769 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013770 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013772 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013774 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013776 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013780 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013782 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013784 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013788 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13789 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013790 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013792 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013794 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013796 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13799 msm_routing_put_port_mixer),
13800};
13801
Rohit Kumara5077932017-09-10 22:05:05 +053013802static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013803 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013805 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013807 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013809 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013811 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013813 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013815 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013817 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013821 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013823 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013825 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13826 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013827 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013829 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13830 msm_routing_put_port_mixer),
13831};
13832
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13837 msm_routing_get_port_mixer,
13838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013839 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13842 msm_routing_get_port_mixer,
13843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013844 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13845 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013846 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13847 msm_routing_get_port_mixer,
13848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013849 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013851 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13852 msm_routing_get_port_mixer,
13853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013854 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13857 msm_routing_get_port_mixer,
13858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013859 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13860 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013861 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13862 msm_routing_get_port_mixer,
13863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13867 msm_routing_get_port_mixer,
13868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013869 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013871 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13872 msm_routing_get_port_mixer,
13873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013874 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013876 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13877 msm_routing_get_port_mixer,
13878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013879 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013881 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13882 msm_routing_get_port_mixer,
13883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013884 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013886 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13887 msm_routing_get_port_mixer,
13888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013889 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13890 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013891 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13892 msm_routing_get_port_mixer,
13893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013894 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013896 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13897 msm_routing_get_port_mixer,
13898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013899 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13900 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013901 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13902 msm_routing_get_port_mixer,
13903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013904 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13907 msm_routing_get_port_mixer,
13908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013909 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13912 msm_routing_get_port_mixer,
13913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013914 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013916 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13917 msm_routing_get_port_mixer,
13918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013919 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013921 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13922 msm_routing_get_port_mixer,
13923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013924 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13925 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013926 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13927 msm_routing_get_port_mixer,
13928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013929 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013931 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13932 msm_routing_get_port_mixer,
13933 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013934};
13935
13936static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013937 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13938 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013939 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13940 msm_routing_get_port_mixer,
13941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013942 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13943 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013944 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13945 msm_routing_get_port_mixer,
13946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013947 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
13950 msm_routing_get_port_mixer,
13951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013952 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013954 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13955 msm_routing_get_port_mixer,
13956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013957 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13958 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013959 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13960 msm_routing_get_port_mixer,
13961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013962 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13963 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013964 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13965 msm_routing_get_port_mixer,
13966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013967 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13968 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013969 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13970 msm_routing_get_port_mixer,
13971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013972 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013974 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13975 msm_routing_get_port_mixer,
13976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013977 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
13978 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013979 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
13980 msm_routing_get_port_mixer,
13981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013982 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
13983 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013984 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
13985 msm_routing_get_port_mixer,
13986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013987 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13988 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013989 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
13990 msm_routing_get_port_mixer,
13991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013992 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013994 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
13995 msm_routing_get_port_mixer,
13996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013997 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13998 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013999 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14000 msm_routing_get_port_mixer,
14001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014002 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14003 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014004 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14005 msm_routing_get_port_mixer,
14006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014007 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14008 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014009 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14010 msm_routing_get_port_mixer,
14011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014012 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14013 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014014 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14015 msm_routing_get_port_mixer,
14016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014017 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14018 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014019 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14020 msm_routing_get_port_mixer,
14021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014022 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14023 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014024 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14025 msm_routing_get_port_mixer,
14026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014027 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14028 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014029 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14030 msm_routing_get_port_mixer,
14031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014032 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14033 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014034 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14035 msm_routing_get_port_mixer,
14036 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014037};
14038
14039static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014040 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14041 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14043 msm_routing_get_port_mixer,
14044 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014045 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14046 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014047 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14048 msm_routing_get_port_mixer,
14049 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014050 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14051 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014052 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14053 msm_routing_get_port_mixer,
14054 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014055 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14056 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014057 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14058 msm_routing_get_port_mixer,
14059 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014060 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14061 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014062 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14063 msm_routing_get_port_mixer,
14064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014065 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14066 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014067 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14068 msm_routing_get_port_mixer,
14069 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014070 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14071 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014072 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14073 msm_routing_get_port_mixer,
14074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014075 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14076 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014077 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14078 msm_routing_get_port_mixer,
14079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014080 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14081 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014082 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14083 msm_routing_get_port_mixer,
14084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014085 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14086 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14088 msm_routing_get_port_mixer,
14089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014090 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14091 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014092 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14093 msm_routing_get_port_mixer,
14094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014095 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14096 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014097 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14098 msm_routing_get_port_mixer,
14099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014100 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14101 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014102 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14103 msm_routing_get_port_mixer,
14104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014105 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14106 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014107 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14108 msm_routing_get_port_mixer,
14109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014110 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14111 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014112 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14113 msm_routing_get_port_mixer,
14114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014117 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14118 msm_routing_get_port_mixer,
14119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014120 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14121 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014122 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14123 msm_routing_get_port_mixer,
14124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014125 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14126 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014127 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14128 msm_routing_get_port_mixer,
14129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014130 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14131 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014132 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14133 msm_routing_get_port_mixer,
14134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014137 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14138 msm_routing_get_port_mixer,
14139 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014140};
14141
14142static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014143 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014145 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14146 msm_routing_get_port_mixer,
14147 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014148 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14149 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014150 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14151 msm_routing_get_port_mixer,
14152 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014153 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14154 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014155 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14156 msm_routing_get_port_mixer,
14157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014158 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014160 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14161 msm_routing_get_port_mixer,
14162 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014163 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14164 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014165 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14166 msm_routing_get_port_mixer,
14167 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014168 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14169 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014170 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14171 msm_routing_get_port_mixer,
14172 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014173 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14174 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014175 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14176 msm_routing_get_port_mixer,
14177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014178 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14179 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014180 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14181 msm_routing_get_port_mixer,
14182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014183 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14184 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014185 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14186 msm_routing_get_port_mixer,
14187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014188 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14189 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014190 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14191 msm_routing_get_port_mixer,
14192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014193 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14194 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014195 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14196 msm_routing_get_port_mixer,
14197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014198 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14199 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014200 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14201 msm_routing_get_port_mixer,
14202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014203 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14204 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014205 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14206 msm_routing_get_port_mixer,
14207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014208 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14209 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014210 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14211 msm_routing_get_port_mixer,
14212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014213 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14214 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014215 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14216 msm_routing_get_port_mixer,
14217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014218 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14219 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014220 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14221 msm_routing_get_port_mixer,
14222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014223 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14224 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014225 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14226 msm_routing_get_port_mixer,
14227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014228 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14229 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014230 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14231 msm_routing_get_port_mixer,
14232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014233 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14234 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014235 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14236 msm_routing_get_port_mixer,
14237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014238 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14239 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014240 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14241 msm_routing_get_port_mixer,
14242 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014243};
14244
14245static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014248 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14249 msm_routing_get_port_mixer,
14250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014251 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014253 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14254 msm_routing_get_port_mixer,
14255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014256 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14257 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014258 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14259 msm_routing_get_port_mixer,
14260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014261 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14262 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014263 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14264 msm_routing_get_port_mixer,
14265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014266 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014268 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14269 msm_routing_get_port_mixer,
14270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014273 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14274 msm_routing_get_port_mixer,
14275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014276 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14277 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014278 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14279 msm_routing_get_port_mixer,
14280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014281 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14282 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014283 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14284 msm_routing_get_port_mixer,
14285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014286 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14287 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014288 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14289 msm_routing_get_port_mixer,
14290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014291 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14292 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014293 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14294 msm_routing_get_port_mixer,
14295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014296 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14297 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014298 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14299 msm_routing_get_port_mixer,
14300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014301 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14302 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014303 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14304 msm_routing_get_port_mixer,
14305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014306 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14307 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014308 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14309 msm_routing_get_port_mixer,
14310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014311 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14312 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014313 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14314 msm_routing_get_port_mixer,
14315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014316 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14317 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014318 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14319 msm_routing_get_port_mixer,
14320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014321 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14322 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014323 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14324 msm_routing_get_port_mixer,
14325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014326 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14327 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014328 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14329 msm_routing_get_port_mixer,
14330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014331 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14332 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014333 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14334 msm_routing_get_port_mixer,
14335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014336 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14337 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014338 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14339 msm_routing_get_port_mixer,
14340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014341 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14342 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014343 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14344 msm_routing_get_port_mixer,
14345 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346};
14347
14348static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014349 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014351 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14352 msm_routing_get_port_mixer,
14353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014354 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14355 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014356 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14357 msm_routing_get_port_mixer,
14358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14362 msm_routing_get_port_mixer,
14363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014364 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14365 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014366 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14367 msm_routing_get_port_mixer,
14368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014369 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14370 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014371 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14372 msm_routing_get_port_mixer,
14373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014376 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14377 msm_routing_get_port_mixer,
14378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014379 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014381 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14382 msm_routing_get_port_mixer,
14383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014384 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14385 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014386 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14387 msm_routing_get_port_mixer,
14388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014389 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14390 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014391 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14392 msm_routing_get_port_mixer,
14393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014394 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14395 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014396 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14397 msm_routing_get_port_mixer,
14398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014399 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14400 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014401 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14402 msm_routing_get_port_mixer,
14403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014404 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14405 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014406 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14407 msm_routing_get_port_mixer,
14408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014409 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14410 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014411 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14412 msm_routing_get_port_mixer,
14413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014414 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14415 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014416 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14417 msm_routing_get_port_mixer,
14418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014419 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14420 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014421 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14422 msm_routing_get_port_mixer,
14423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014424 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14425 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014426 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14427 msm_routing_get_port_mixer,
14428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014429 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14430 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014431 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14432 msm_routing_get_port_mixer,
14433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014434 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14435 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014436 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14437 msm_routing_get_port_mixer,
14438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014439 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14440 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014441 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14442 msm_routing_get_port_mixer,
14443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014444 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14445 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014446 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14447 msm_routing_get_port_mixer,
14448 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014449};
14450
14451static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014452 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014454 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14455 msm_routing_get_port_mixer,
14456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014457 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014459 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14460 msm_routing_get_port_mixer,
14461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014462 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14463 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014464 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14465 msm_routing_get_port_mixer,
14466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014467 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014469 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14470 msm_routing_get_port_mixer,
14471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014472 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014474 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14475 msm_routing_get_port_mixer,
14476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014477 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014479 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14480 msm_routing_get_port_mixer,
14481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014482 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14483 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014484 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14485 msm_routing_get_port_mixer,
14486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014487 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14488 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014489 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14490 msm_routing_get_port_mixer,
14491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014492 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14493 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014494 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14495 msm_routing_get_port_mixer,
14496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014497 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14498 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014499 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14500 msm_routing_get_port_mixer,
14501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014502 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14503 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014504 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14505 msm_routing_get_port_mixer,
14506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014507 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14508 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014509 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14510 msm_routing_get_port_mixer,
14511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014512 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14513 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014514 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14515 msm_routing_get_port_mixer,
14516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014517 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14518 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014519 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14520 msm_routing_get_port_mixer,
14521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014522 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14523 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014524 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14525 msm_routing_get_port_mixer,
14526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014527 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14528 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014529 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14530 msm_routing_get_port_mixer,
14531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014532 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14533 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014534 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14535 msm_routing_get_port_mixer,
14536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014537 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14538 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014539 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14540 msm_routing_get_port_mixer,
14541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014542 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14543 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014544 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14545 msm_routing_get_port_mixer,
14546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014547 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14548 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014549 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14550 msm_routing_get_port_mixer,
14551 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014552};
14553
14554static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014555 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014557 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14558 msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14563 msm_routing_get_port_mixer,
14564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014565 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14566 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014567 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14568 msm_routing_get_port_mixer,
14569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014570 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014572 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14573 msm_routing_get_port_mixer,
14574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014575 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14576 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014577 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14578 msm_routing_get_port_mixer,
14579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014582 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14583 msm_routing_get_port_mixer,
14584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014585 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14586 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014587 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14588 msm_routing_get_port_mixer,
14589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014590 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14591 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014592 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14593 msm_routing_get_port_mixer,
14594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014595 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14596 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014597 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14598 msm_routing_get_port_mixer,
14599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014600 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14601 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014602 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14603 msm_routing_get_port_mixer,
14604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014605 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14606 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014607 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14608 msm_routing_get_port_mixer,
14609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014610 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14611 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014612 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14613 msm_routing_get_port_mixer,
14614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014615 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14616 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014617 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14618 msm_routing_get_port_mixer,
14619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014620 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14621 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014622 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14623 msm_routing_get_port_mixer,
14624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014625 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14626 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014627 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14628 msm_routing_get_port_mixer,
14629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014630 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14631 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014632 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14633 msm_routing_get_port_mixer,
14634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014635 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14636 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014637 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14638 msm_routing_get_port_mixer,
14639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014640 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14641 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014642 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14643 msm_routing_get_port_mixer,
14644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014645 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14646 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014647 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14648 msm_routing_get_port_mixer,
14649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014650 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14651 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014652 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14653 msm_routing_get_port_mixer,
14654 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014655};
14656
14657static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014660 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14661 msm_routing_get_port_mixer,
14662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014663 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014665 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14666 msm_routing_get_port_mixer,
14667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014670 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14671 msm_routing_get_port_mixer,
14672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014673 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014675 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14676 msm_routing_get_port_mixer,
14677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014678 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014680 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14681 msm_routing_get_port_mixer,
14682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014683 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014685 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14686 msm_routing_get_port_mixer,
14687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014690 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14691 msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014693 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14694 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014695 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14696 msm_routing_get_port_mixer,
14697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014698 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14699 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014700 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14701 msm_routing_get_port_mixer,
14702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014703 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14704 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014705 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14706 msm_routing_get_port_mixer,
14707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014708 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14709 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014710 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14711 msm_routing_get_port_mixer,
14712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014713 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14714 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014715 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14716 msm_routing_get_port_mixer,
14717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014718 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14719 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014720 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14721 msm_routing_get_port_mixer,
14722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014723 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14724 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014725 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14726 msm_routing_get_port_mixer,
14727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014728 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14729 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014730 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14731 msm_routing_get_port_mixer,
14732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014733 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14734 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014735 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14736 msm_routing_get_port_mixer,
14737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014738 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14739 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014740 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14741 msm_routing_get_port_mixer,
14742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014743 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14744 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014745 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14746 msm_routing_get_port_mixer,
14747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014748 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14749 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014750 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14751 msm_routing_get_port_mixer,
14752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014753 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14754 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014755 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14756 msm_routing_get_port_mixer,
14757 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014758};
14759
14760static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014763 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014768 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014773 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014778 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14779 msm_routing_get_port_mixer,
14780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014781 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014783 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14784 msm_routing_get_port_mixer,
14785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014786 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014788 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14789 msm_routing_get_port_mixer,
14790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014791 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014793 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14794 msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014796 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14797 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014798 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14799 msm_routing_get_port_mixer,
14800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014801 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14802 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014803 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14804 msm_routing_get_port_mixer,
14805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014806 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14807 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014808 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14809 msm_routing_get_port_mixer,
14810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014811 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14812 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014813 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14814 msm_routing_get_port_mixer,
14815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014816 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14817 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014818 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14819 msm_routing_get_port_mixer,
14820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014821 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14822 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014823 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14824 msm_routing_get_port_mixer,
14825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014826 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14827 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014828 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14829 msm_routing_get_port_mixer,
14830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014831 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14832 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014833 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14834 msm_routing_get_port_mixer,
14835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014836 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14837 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014838 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14839 msm_routing_get_port_mixer,
14840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014841 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14842 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014843 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14844 msm_routing_get_port_mixer,
14845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014846 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14847 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014848 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14849 msm_routing_get_port_mixer,
14850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014851 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14852 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014853 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14854 msm_routing_get_port_mixer,
14855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014856 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14857 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014858 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14859 msm_routing_get_port_mixer,
14860 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014861};
14862
14863static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014866 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014871 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014876 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014879 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014881 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14882 msm_routing_get_port_mixer,
14883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014884 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014886 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14887 msm_routing_get_port_mixer,
14888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014891 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14892 msm_routing_get_port_mixer,
14893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014894 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14895 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014896 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14897 msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014899 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14900 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014901 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14902 msm_routing_get_port_mixer,
14903 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014904 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
14905 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014906 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
14907 msm_routing_get_port_mixer,
14908 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014909 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
14910 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014911 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
14912 msm_routing_get_port_mixer,
14913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014914 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
14915 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014916 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
14917 msm_routing_get_port_mixer,
14918 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014919 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
14920 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014921 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
14922 msm_routing_get_port_mixer,
14923 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014924 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14925 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014926 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14927 msm_routing_get_port_mixer,
14928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014929 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14930 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014931 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14932 msm_routing_get_port_mixer,
14933 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014934 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14935 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014936 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14937 msm_routing_get_port_mixer,
14938 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014939 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14940 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014941 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14942 msm_routing_get_port_mixer,
14943 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014944 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14945 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014946 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14947 msm_routing_get_port_mixer,
14948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014949 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14950 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014951 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14952 msm_routing_get_port_mixer,
14953 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014954 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14955 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014956 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14957 msm_routing_get_port_mixer,
14958 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014959 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14960 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014961 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14962 msm_routing_get_port_mixer,
14963 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964};
14965
14966static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014969 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014974 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014979 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014982 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014984 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14985 msm_routing_get_port_mixer,
14986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014987 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14988 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014989 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14990 msm_routing_get_port_mixer,
14991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014994 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14995 msm_routing_get_port_mixer,
14996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014997 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014999 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15000 msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015002 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15003 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015004 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15005 msm_routing_get_port_mixer,
15006 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015007 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15008 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015009 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15010 msm_routing_get_port_mixer,
15011 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015012 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15013 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015014 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15015 msm_routing_get_port_mixer,
15016 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015017 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15018 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015019 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15020 msm_routing_get_port_mixer,
15021 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015022 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15023 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015024 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15025 msm_routing_get_port_mixer,
15026 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015027 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15028 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015029 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15030 msm_routing_get_port_mixer,
15031 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015032 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15033 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015034 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15035 msm_routing_get_port_mixer,
15036 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015037 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15038 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015039 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15040 msm_routing_get_port_mixer,
15041 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015042 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15043 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015044 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15045 msm_routing_get_port_mixer,
15046 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015047 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15048 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015049 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15050 msm_routing_get_port_mixer,
15051 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015052 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15053 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015054 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15055 msm_routing_get_port_mixer,
15056 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015057 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15058 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015059 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15060 msm_routing_get_port_mixer,
15061 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015062 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15063 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015064 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15065 msm_routing_get_port_mixer,
15066 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015067};
15068
15069static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015070 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15071 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015072 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15073 msm_routing_get_port_mixer,
15074 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015075 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15076 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015077 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15078 msm_routing_get_port_mixer,
15079 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015080 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15081 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015082 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15083 msm_routing_get_port_mixer,
15084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015085 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15086 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015087 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15088 msm_routing_get_port_mixer,
15089 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015090 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15091 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015092 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15093 msm_routing_get_port_mixer,
15094 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015095 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15096 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015097 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15098 msm_routing_get_port_mixer,
15099 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015100 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15101 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015102 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15103 msm_routing_get_port_mixer,
15104 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015105 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15106 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015107 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15108 msm_routing_get_port_mixer,
15109 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015110 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15111 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015112 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15113 msm_routing_get_port_mixer,
15114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015115 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15116 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015117 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15118 msm_routing_get_port_mixer,
15119 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015120 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15121 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015122 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15123 msm_routing_get_port_mixer,
15124 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015125 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15126 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015127 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15128 msm_routing_get_port_mixer,
15129 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015130 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15131 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015132 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15133 msm_routing_get_port_mixer,
15134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015135 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15136 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015137 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15138 msm_routing_get_port_mixer,
15139 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015140 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15141 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015142 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15143 msm_routing_get_port_mixer,
15144 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015145 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15146 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015147 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15148 msm_routing_get_port_mixer,
15149 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015150 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15151 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015152 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15153 msm_routing_get_port_mixer,
15154 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015155 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15156 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015157 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15158 msm_routing_get_port_mixer,
15159 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015160 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15161 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015162 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15163 msm_routing_get_port_mixer,
15164 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015165 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15166 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015167 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15168 msm_routing_get_port_mixer,
15169 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015170};
15171
15172static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015173 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15174 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015175 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15176 msm_routing_get_port_mixer,
15177 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015178 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15179 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015180 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15181 msm_routing_get_port_mixer,
15182 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015183 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15184 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015185 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15186 msm_routing_get_port_mixer,
15187 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015188 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15189 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015190 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15191 msm_routing_get_port_mixer,
15192 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015193 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15194 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015195 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15196 msm_routing_get_port_mixer,
15197 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015198 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15199 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015200 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15201 msm_routing_get_port_mixer,
15202 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015203 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15204 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015205 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15206 msm_routing_get_port_mixer,
15207 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015208 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15209 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015210 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15211 msm_routing_get_port_mixer,
15212 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015213 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15214 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015215 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15216 msm_routing_get_port_mixer,
15217 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015218 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15219 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015220 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15221 msm_routing_get_port_mixer,
15222 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015223 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15224 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015225 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15226 msm_routing_get_port_mixer,
15227 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015228 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15229 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015230 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15231 msm_routing_get_port_mixer,
15232 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015233 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15234 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015235 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15236 msm_routing_get_port_mixer,
15237 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015238 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15239 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015240 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15241 msm_routing_get_port_mixer,
15242 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015243 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15244 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015245 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15246 msm_routing_get_port_mixer,
15247 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015248 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15249 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015250 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15251 msm_routing_get_port_mixer,
15252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015253 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15254 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015255 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15256 msm_routing_get_port_mixer,
15257 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015258 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15259 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015260 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15261 msm_routing_get_port_mixer,
15262 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015263 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15264 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015265 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15266 msm_routing_get_port_mixer,
15267 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015268 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15269 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015270 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15271 msm_routing_get_port_mixer,
15272 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015273};
15274
15275static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015276 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15277 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015278 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15279 msm_routing_get_port_mixer,
15280 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015281 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15282 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015283 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15284 msm_routing_get_port_mixer,
15285 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015286 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15287 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015288 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15289 msm_routing_get_port_mixer,
15290 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015291 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15292 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015293 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15294 msm_routing_get_port_mixer,
15295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015296 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15297 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015298 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15299 msm_routing_get_port_mixer,
15300 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015301 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15302 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015303 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15304 msm_routing_get_port_mixer,
15305 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015306 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15307 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015308 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15309 msm_routing_get_port_mixer,
15310 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015311 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15312 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015313 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15314 msm_routing_get_port_mixer,
15315 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015316 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15317 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015318 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15319 msm_routing_get_port_mixer,
15320 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015321 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15322 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015323 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15324 msm_routing_get_port_mixer,
15325 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015326 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15327 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015328 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15329 msm_routing_get_port_mixer,
15330 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015331 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15332 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015333 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15334 msm_routing_get_port_mixer,
15335 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015336 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15337 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015338 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15339 msm_routing_get_port_mixer,
15340 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015341 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15342 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015343 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15344 msm_routing_get_port_mixer,
15345 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015346 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15347 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015348 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15349 msm_routing_get_port_mixer,
15350 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015351 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15352 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015353 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15354 msm_routing_get_port_mixer,
15355 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015356 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15357 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015358 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15359 msm_routing_get_port_mixer,
15360 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015361 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15362 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015363 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15364 msm_routing_get_port_mixer,
15365 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015366 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15367 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015368 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15369 msm_routing_get_port_mixer,
15370 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015371 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15372 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015373 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15374 msm_routing_get_port_mixer,
15375 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015376};
15377
15378static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015379 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15380 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015381 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15382 msm_routing_get_port_mixer,
15383 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015384 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15385 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015386 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15387 msm_routing_get_port_mixer,
15388 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015389 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15390 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015391 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15392 msm_routing_get_port_mixer,
15393 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015394 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15395 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015396 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15397 msm_routing_get_port_mixer,
15398 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015399 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15400 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015401 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15402 msm_routing_get_port_mixer,
15403 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015404 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15405 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015406 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15407 msm_routing_get_port_mixer,
15408 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015409 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15410 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015411 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15412 msm_routing_get_port_mixer,
15413 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015414 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15415 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015416 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15417 msm_routing_get_port_mixer,
15418 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015419 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15420 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015421 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15422 msm_routing_get_port_mixer,
15423 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015424 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15425 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015426 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15427 msm_routing_get_port_mixer,
15428 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015429 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15430 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015431 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15432 msm_routing_get_port_mixer,
15433 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015434 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15435 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015436 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15437 msm_routing_get_port_mixer,
15438 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015439 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15440 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015441 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15442 msm_routing_get_port_mixer,
15443 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015444 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15445 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015446 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15447 msm_routing_get_port_mixer,
15448 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015449 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15450 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015451 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15452 msm_routing_get_port_mixer,
15453 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015454 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15455 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015456 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15457 msm_routing_get_port_mixer,
15458 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015459 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15460 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015461 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15462 msm_routing_get_port_mixer,
15463 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015464 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15465 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015466 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15467 msm_routing_get_port_mixer,
15468 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015469 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15470 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015471 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15472 msm_routing_get_port_mixer,
15473 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015474 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15475 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015476 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15477 msm_routing_get_port_mixer,
15478 msm_routing_put_port_mixer),
15479};
15480
15481static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015482 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15483 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015484 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15485 msm_routing_get_port_mixer,
15486 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015487 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15488 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015489 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15490 msm_routing_get_port_mixer,
15491 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015492 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15493 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015494 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15495 msm_routing_get_port_mixer,
15496 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015497 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15498 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015499 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15500 msm_routing_get_port_mixer,
15501 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015502 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15503 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015504 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15505 msm_routing_get_port_mixer,
15506 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015507 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15508 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015509 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15510 msm_routing_get_port_mixer,
15511 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015512 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15513 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015514 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15515 msm_routing_get_port_mixer,
15516 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015517 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15518 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015519 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15520 msm_routing_get_port_mixer,
15521 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015522 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15523 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015524 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15525 msm_routing_get_port_mixer,
15526 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015527 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15528 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015529 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15530 msm_routing_get_port_mixer,
15531 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015532 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15533 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015534 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15535 msm_routing_get_port_mixer,
15536 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015537 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15538 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015539 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15540 msm_routing_get_port_mixer,
15541 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015542 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15543 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015544 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15545 msm_routing_get_port_mixer,
15546 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015547 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15548 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015549 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15550 msm_routing_get_port_mixer,
15551 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015552 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15553 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015554 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15555 msm_routing_get_port_mixer,
15556 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015557 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15558 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015559 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15560 msm_routing_get_port_mixer,
15561 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015562 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15563 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015564 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15565 msm_routing_get_port_mixer,
15566 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015567 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15568 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015569 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15570 msm_routing_get_port_mixer,
15571 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015572 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15573 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015574 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15575 msm_routing_get_port_mixer,
15576 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015577 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15578 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015579 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15580 msm_routing_get_port_mixer,
15581 msm_routing_put_port_mixer),
15582};
15583
15584static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015585 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15586 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015587 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15588 msm_routing_get_port_mixer,
15589 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015590 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15591 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015592 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15593 msm_routing_get_port_mixer,
15594 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015595 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15596 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015597 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15598 msm_routing_get_port_mixer,
15599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015600 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15601 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015602 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15603 msm_routing_get_port_mixer,
15604 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015605 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15606 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015607 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15608 msm_routing_get_port_mixer,
15609 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015610 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15611 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015612 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15613 msm_routing_get_port_mixer,
15614 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015615 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15616 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015617 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15618 msm_routing_get_port_mixer,
15619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015620 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15621 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015622 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15623 msm_routing_get_port_mixer,
15624 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015625 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15626 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015627 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15628 msm_routing_get_port_mixer,
15629 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015630 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15631 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015632 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15633 msm_routing_get_port_mixer,
15634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015635 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15636 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015637 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15638 msm_routing_get_port_mixer,
15639 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015640 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15641 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015642 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15643 msm_routing_get_port_mixer,
15644 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015645 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15646 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015647 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15648 msm_routing_get_port_mixer,
15649 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015650 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15651 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015652 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15653 msm_routing_get_port_mixer,
15654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015655 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15656 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015657 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15658 msm_routing_get_port_mixer,
15659 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015660 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15661 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015662 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15663 msm_routing_get_port_mixer,
15664 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015665 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15666 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015667 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15668 msm_routing_get_port_mixer,
15669 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015670 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15671 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015672 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15673 msm_routing_get_port_mixer,
15674 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015675 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15676 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015677 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15678 msm_routing_get_port_mixer,
15679 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015680 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15681 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015682 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15683 msm_routing_get_port_mixer,
15684 msm_routing_put_port_mixer),
15685};
15686
15687static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015688 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15689 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015690 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15691 msm_routing_get_port_mixer,
15692 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015693 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15694 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015695 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15696 msm_routing_get_port_mixer,
15697 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015698 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15699 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015700 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15701 msm_routing_get_port_mixer,
15702 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015703 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15704 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015705 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15706 msm_routing_get_port_mixer,
15707 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015708 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15709 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015710 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15711 msm_routing_get_port_mixer,
15712 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015713 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15714 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015715 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15716 msm_routing_get_port_mixer,
15717 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015718 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15719 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015720 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15721 msm_routing_get_port_mixer,
15722 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015723 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15724 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015725 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15726 msm_routing_get_port_mixer,
15727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015728 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15729 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015730 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15731 msm_routing_get_port_mixer,
15732 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015733 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15734 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015735 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15736 msm_routing_get_port_mixer,
15737 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015738 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15739 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015740 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15741 msm_routing_get_port_mixer,
15742 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015743 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15744 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015745 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15746 msm_routing_get_port_mixer,
15747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015748 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15749 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015750 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15751 msm_routing_get_port_mixer,
15752 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015753 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15754 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015755 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15756 msm_routing_get_port_mixer,
15757 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015758 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15759 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015760 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15761 msm_routing_get_port_mixer,
15762 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015763 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15764 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015765 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15766 msm_routing_get_port_mixer,
15767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015768 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15769 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015770 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15771 msm_routing_get_port_mixer,
15772 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015773 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15774 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015775 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15776 msm_routing_get_port_mixer,
15777 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015778 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15779 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015780 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15781 msm_routing_get_port_mixer,
15782 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015783 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15784 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015785 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15786 msm_routing_get_port_mixer,
15787 msm_routing_put_port_mixer),
15788};
15789
15790static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015791 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15792 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015793 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15794 msm_routing_get_port_mixer,
15795 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015796 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15797 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015798 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15799 msm_routing_get_port_mixer,
15800 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015801 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15802 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015803 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15804 msm_routing_get_port_mixer,
15805 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015806 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15807 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015808 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15809 msm_routing_get_port_mixer,
15810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015811 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15812 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015813 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15814 msm_routing_get_port_mixer,
15815 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015816 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15817 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015818 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15819 msm_routing_get_port_mixer,
15820 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015821 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15822 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015823 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15824 msm_routing_get_port_mixer,
15825 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015826 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15827 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015828 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15829 msm_routing_get_port_mixer,
15830 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015831 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15832 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015833 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15834 msm_routing_get_port_mixer,
15835 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015836 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15837 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015838 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15839 msm_routing_get_port_mixer,
15840 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015841 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15842 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015843 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15844 msm_routing_get_port_mixer,
15845 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015846 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15847 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015848 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15849 msm_routing_get_port_mixer,
15850 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015851 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15852 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015853 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15854 msm_routing_get_port_mixer,
15855 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015856 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15857 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015858 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15859 msm_routing_get_port_mixer,
15860 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015861 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15862 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015863 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15864 msm_routing_get_port_mixer,
15865 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015866 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15867 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015868 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15869 msm_routing_get_port_mixer,
15870 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015871 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15872 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015873 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15874 msm_routing_get_port_mixer,
15875 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015876 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15877 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015878 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15879 msm_routing_get_port_mixer,
15880 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015881 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15882 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015883 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15884 msm_routing_get_port_mixer,
15885 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015886 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15887 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015888 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15889 msm_routing_get_port_mixer,
15890 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015891};
15892
15893static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015894 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15895 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015896 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015898 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15899 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015900 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015904 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015906 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15907 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015908 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015910 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15911 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015912 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015914 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15915 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015916 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15917 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015918 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15919 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015920 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15921 msm_routing_put_port_mixer),
15922};
15923
15924static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015925 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15926 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015927 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015929 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15930 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015931 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015933 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15934 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015935 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015937 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15938 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015939 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15940 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015941 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
15942 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053015943 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
15944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015945 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015947 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
15948 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015949 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15950 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015951 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
15952 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015953 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
15954 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015955 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
15956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015957 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15958 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080015959 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
15960 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015961};
15962
15963static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015964 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
15965 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015966 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15967 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015968 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
15969 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015970 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15971 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015972 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
15973 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015974 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15975 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015976 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
15977 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015978 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15979 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15983 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015984 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15985 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015986 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15987 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015988 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15989 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015990 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15991 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015992 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
15993 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015994 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15995 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053015996 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
15997 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
15998 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
15999 msm_routing_put_listen_mixer),
16000 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16002 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16003 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016004 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16005 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16006 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16007 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016008};
16009
16010static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016011 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16012 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016013 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16014 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16016 SND_SOC_NOPM,
16017 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016018 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16019 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016022 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16023 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016024 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16025 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016026 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16027 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016028 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16029 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016030 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16031 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016032 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16033 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016034 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16035 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016036 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16037 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016038 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16039 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016040 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16041 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016042 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16043 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016044 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16045 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16046 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16047 msm_routing_put_listen_mixer),
16048 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16050 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16051 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016052 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16053 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16054 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16055 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016056};
16057
16058static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016059 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16060 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016061 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16062 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016065 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16066 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016067 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16068 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016069 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16070 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016071 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16072 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016073 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16074 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016075 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16076 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016077 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16078 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016079 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16080 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016081 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16082 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016085 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16086 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016087 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16088 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016089 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16090 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016091 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16092 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16093 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16094 msm_routing_put_listen_mixer),
16095 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16096 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16097 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16098 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016099 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16100 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16101 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16102 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016103};
16104
16105static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016106 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16107 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016108 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16109 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016110 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16111 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016112 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16113 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016114 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16115 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016116 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16117 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016120 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16121 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016122 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16123 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016124 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16125 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016126 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16127 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016128 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16129 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016130 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16131 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016132 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16133 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016134 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16135 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016136 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16137 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016138 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16140 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16141 msm_routing_put_listen_mixer),
16142 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16143 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16144 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16145 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016146 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16148 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16149 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016150};
16151
16152static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016153 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16154 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016155 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16156 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016157 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16158 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016159 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16160 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016163 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16164 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016165 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16166 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016167 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16168 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016169 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16170 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016171 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16172 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016173 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16174 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016175 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16176 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016177 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16178 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016179 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16180 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016183 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16184 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016185 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16186 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16187 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16188 msm_routing_put_listen_mixer),
16189 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16190 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16191 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16192 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016193 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16194 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16195 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16196 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016197};
16198
16199static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016200 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16201 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016202 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16203 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016204 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16205 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016206 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16207 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016208 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16209 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016210 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16211 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016212 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16213 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016214 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16215 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016218 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16219 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016220 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16221 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016222 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16223 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016224 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16225 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016226 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16227 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016228 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16229 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016230 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16231 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016232 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16233 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16234 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16235 msm_routing_put_listen_mixer),
16236 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16237 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16238 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16239 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016240 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16241 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16242 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16243 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016244};
16245
16246static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016247 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16248 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016249 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16250 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016251 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16252 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016253 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16254 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016255 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16256 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016257 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16258 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016259 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16260 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016261 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16262 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016263 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16264 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016265 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16266 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016267 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16268 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016269 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16270 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016271 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16272 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016273 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16274 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016275 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16276 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016277 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16278 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016279 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16280 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16281 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16282 msm_routing_put_listen_mixer),
16283 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16284 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16285 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16286 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016287 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16288 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16289 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16290 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016291};
16292
16293static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016294 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16295 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016296 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16297 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016298 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16299 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016300 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16301 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016302 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16303 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016304 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16305 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016306 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16307 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016308 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16309 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016310 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16311 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016312 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16313 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016314 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16315 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016316 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16317 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016318 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16319 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016320 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16321 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016322 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16323 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016324 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16325 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016326 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16327 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16328 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16329 msm_routing_put_listen_mixer),
16330 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16331 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16332 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16333 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016334 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16335 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16336 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16337 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016338};
16339
16340static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16341 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16342 0, 1, 0, msm_routing_get_switch_mixer,
16343 msm_routing_put_switch_mixer);
16344
16345static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16346 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16347 0, 1, 0, msm_routing_get_switch_mixer,
16348 msm_routing_put_switch_mixer);
16349
16350static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16351 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16352 0, 1, 0, msm_routing_get_switch_mixer,
16353 msm_routing_put_switch_mixer);
16354
16355static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16356 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16357 0, 1, 0, msm_routing_get_switch_mixer,
16358 msm_routing_put_switch_mixer);
16359
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016360static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16361 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16362 0, 1, 0, msm_routing_get_switch_mixer,
16363 msm_routing_put_switch_mixer);
16364
16365static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016366 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16367 0, 1, 0, msm_routing_get_switch_mixer,
16368 msm_routing_put_switch_mixer);
16369
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016370static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16371 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16372 0, 1, 0, msm_routing_get_switch_mixer,
16373 msm_routing_put_switch_mixer);
16374
16375static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16376 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16377 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16378 msm_routing_put_fm_pcmrx_switch_mixer);
16379
16380static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16381 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16382 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16383 msm_routing_put_int0_mi2s_switch_mixer);
16384
16385static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16386 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16387 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16388 msm_routing_put_int4_mi2s_switch_mixer);
16389
16390static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16391 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16392 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16393 msm_routing_put_pri_mi2s_switch_mixer);
16394
16395static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16396 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16397 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16398 msm_routing_put_sec_mi2s_switch_mixer);
16399
16400static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16401 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16402 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16403 msm_routing_put_tert_mi2s_switch_mixer);
16404
16405static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16406 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16407 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16408 msm_routing_put_quat_mi2s_switch_mixer);
16409
Rohit Kumara5077932017-09-10 22:05:05 +053016410static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16411 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16412 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16413 msm_routing_put_quin_mi2s_switch_mixer);
16414
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016415static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16416 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16417 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16418 msm_routing_put_hfp_switch_mixer);
16419
16420static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16421 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16422 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16423 msm_routing_put_hfp_switch_mixer);
16424
16425static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16426 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16427 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16428 msm_routing_put_hfp_switch_mixer);
16429
16430static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16431 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16432 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16433 msm_routing_put_hfp_switch_mixer);
16434
16435static const struct snd_kcontrol_new usb_switch_mixer_controls =
16436 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16437 0, 1, 0, msm_routing_get_usb_switch_mixer,
16438 msm_routing_put_usb_switch_mixer);
16439
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016440static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16441 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16442 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16443 msm_routing_a2dp_switch_mixer_put);
16444
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016445static const struct soc_enum lsm_port_enum =
16446 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16447
16448static const char * const lsm_func_text[] = {
16449 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16450};
16451static const struct soc_enum lsm_func_enum =
16452 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16453
16454static const struct snd_kcontrol_new lsm_controls[] = {
16455 /* kcontrol of lsm_function */
16456 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16457 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16458 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16459 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16460 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16461 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16462 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16463 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16464 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16465 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16466 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16467 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16468 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16469 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16470 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16471 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16472 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16473 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016474 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16475 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016476 /* kcontrol of lsm_port */
16477 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16478 msm_routing_lsm_port_get,
16479 msm_routing_lsm_port_put),
16480 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16481 msm_routing_lsm_port_get,
16482 msm_routing_lsm_port_put),
16483 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16484 msm_routing_lsm_port_get,
16485 msm_routing_lsm_port_put),
16486 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16487 msm_routing_lsm_port_get,
16488 msm_routing_lsm_port_put),
16489 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16490 msm_routing_lsm_port_get,
16491 msm_routing_lsm_port_put),
16492 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16493 msm_routing_lsm_port_get,
16494 msm_routing_lsm_port_put),
16495 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16496 msm_routing_lsm_port_get,
16497 msm_routing_lsm_port_put),
16498 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16499 msm_routing_lsm_port_get,
16500 msm_routing_lsm_port_put),
16501};
16502
16503static const char * const aanc_slim_0_rx_text[] = {
16504 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16505 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16506};
16507
16508static const struct soc_enum aanc_slim_0_rx_enum =
16509 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16510 aanc_slim_0_rx_text);
16511
16512static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16513 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16514 msm_routing_slim_0_rx_aanc_mux_get,
16515 msm_routing_slim_0_rx_aanc_mux_put)
16516};
16517
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016518static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16519 struct snd_ctl_elem_value *ucontrol)
16520{
16521 ucontrol->value.integer.value[0] = aanc_level;
16522
16523 return 0;
16524}
16525
16526static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16527 struct snd_ctl_elem_value *ucontrol)
16528{
16529 int ret = 0;
16530
16531 mutex_lock(&routing_lock);
16532 aanc_level = ucontrol->value.integer.value[0];
16533 pr_debug("%s: value: %ld\n",
16534 __func__, ucontrol->value.integer.value[0]);
16535 ret = afe_set_aanc_noise_level(aanc_level);
16536 mutex_unlock(&routing_lock);
16537
16538 return ret;
16539}
16540
16541static const struct snd_kcontrol_new aanc_noise_level[] = {
16542 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16543 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16544};
16545
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016546static int msm_routing_get_stereo_to_custom_stereo_control(
16547 struct snd_kcontrol *kcontrol,
16548 struct snd_ctl_elem_value *ucontrol)
16549{
16550 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16551 return 0;
16552}
16553
16554static int msm_routing_put_stereo_to_custom_stereo_control(
16555 struct snd_kcontrol *kcontrol,
16556 struct snd_ctl_elem_value *ucontrol)
16557{
16558 int flag = 0, i = 0, rc = 0, idx = 0;
16559 int be_index = 0, port_id, topo_id;
16560 unsigned int session_id = 0;
16561 uint16_t op_FL_ip_FL_weight = 0;
16562 uint16_t op_FL_ip_FR_weight = 0;
16563 uint16_t op_FR_ip_FL_weight = 0;
16564 uint16_t op_FR_ip_FR_weight = 0;
16565
16566 flag = ucontrol->value.integer.value[0];
16567 pr_debug("%s E flag %d\n", __func__, flag);
16568
16569 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16570 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16571 __func__, is_custom_stereo_on, flag);
16572 return 0;
16573 }
16574 is_custom_stereo_on = flag ? true : false;
16575 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16576 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16577 port_id = msm_bedais[be_index].port_id;
16578 if (!msm_bedais[be_index].active)
16579 continue;
16580 if ((port_id != SLIMBUS_0_RX) &&
16581 (port_id != RT_PROXY_PORT_001_RX) &&
16582 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16583 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16584 continue;
16585
16586 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16587 MSM_FRONTEND_DAI_MM_SIZE) {
16588 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16589 LEGACY_PCM_MODE)
16590 goto skip_send_custom_stereo;
16591 session_id =
16592 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16593 if (is_custom_stereo_on) {
16594 op_FL_ip_FL_weight =
16595 Q14_GAIN_ZERO_POINT_FIVE;
16596 op_FL_ip_FR_weight =
16597 Q14_GAIN_ZERO_POINT_FIVE;
16598 op_FR_ip_FL_weight =
16599 Q14_GAIN_ZERO_POINT_FIVE;
16600 op_FR_ip_FR_weight =
16601 Q14_GAIN_ZERO_POINT_FIVE;
16602 } else {
16603 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16604 op_FL_ip_FR_weight = 0;
16605 op_FR_ip_FL_weight = 0;
16606 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16607 }
16608 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16609 unsigned long copp =
16610 session_copp_map[i]
16611 [SESSION_TYPE_RX][be_index];
16612 if (!test_bit(idx, &copp))
16613 goto skip_send_custom_stereo;
16614 topo_id = adm_get_topology_for_port_copp_idx(
16615 msm_bedais[be_index].port_id, idx);
16616 if (topo_id < 0)
16617 pr_debug("%s:Err:custom stereo topo %d",
16618 __func__, topo_id);
16619 pr_debug("idx %d\n", idx);
16620 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
16621 rc = msm_ds2_dap_set_custom_stereo_onoff
16622 (msm_bedais[be_index].port_id,
16623 idx, is_custom_stereo_on);
16624 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
16625 rc = dolby_dap_set_custom_stereo_onoff(
16626 msm_bedais[be_index].port_id,
16627 idx, is_custom_stereo_on);
16628 else
16629 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
16630 (msm_bedais[be_index].port_id,
16631 idx, session_id,
16632 op_FL_ip_FL_weight,
16633 op_FL_ip_FR_weight,
16634 op_FR_ip_FL_weight,
16635 op_FR_ip_FR_weight);
16636 if (rc < 0)
16637skip_send_custom_stereo:
16638 pr_err("%s: err setting custom stereo\n",
16639 __func__);
16640 }
16641
16642 }
16643 }
16644 return 0;
16645}
16646
16647static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
16648 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
16649 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
16650 msm_routing_put_stereo_to_custom_stereo_control),
16651};
16652
16653static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16654 struct snd_ctl_elem_value *ucontrol)
16655{
16656 return 0;
16657}
16658
16659static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
16660 struct snd_ctl_elem_value *ucontrol)
16661{
16662 int i = 0, j;
16663 int num_app_types = ucontrol->value.integer.value[i++];
16664
16665 pr_debug("%s\n", __func__);
16666
16667 memset(app_type_cfg, 0, MAX_APP_TYPES*
16668 sizeof(struct msm_pcm_routing_app_type_data));
16669 if (num_app_types > MAX_APP_TYPES) {
16670 pr_err("%s: number of app types exceed the max supported\n",
16671 __func__);
16672 return -EINVAL;
16673 }
16674 for (j = 0; j < num_app_types; j++) {
16675 app_type_cfg[j].app_type =
16676 ucontrol->value.integer.value[i++];
16677 app_type_cfg[j].sample_rate =
16678 ucontrol->value.integer.value[i++];
16679 app_type_cfg[j].bit_width =
16680 ucontrol->value.integer.value[i++];
16681 }
16682
16683 return 0;
16684}
16685
16686static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
16687 struct snd_ctl_elem_value *ucontrol)
16688{
16689 int j, fe_id, be_id, port_type;
16690 int ret = 0;
16691 unsigned long copp;
16692 struct msm_pcm_routing_bdai_data *bedai;
16693 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16694 SESSION_TYPE_RX;
16695 int app_type = ucontrol->value.integer.value[1];
16696 int gain = (ucontrol->value.integer.value[2] +
16697 ucontrol->value.integer.value[3])/2;
16698
16699 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16700 MSM_AFE_PORT_TYPE_TX;
16701
16702 mutex_lock(&routing_lock);
16703 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16704 if (is_be_dai_extproc(be_id))
16705 continue;
16706
16707 bedai = &msm_bedais[be_id];
16708 if (afe_get_port_type(bedai->port_id) != port_type)
16709 continue;
16710
16711 if (!bedai->active)
16712 continue;
16713
16714 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16715 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16716 continue;
16717
16718 if (app_type !=
16719 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16720 continue;
16721
16722 copp = session_copp_map[fe_id][dir][be_id];
16723 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
16724 if (!test_bit(j, &copp))
16725 continue;
16726 ret |= adm_set_volume(bedai->port_id, j, gain);
16727 }
16728 }
16729 }
16730 mutex_unlock(&routing_lock);
16731 return ret ? -EINVAL : 0;
16732}
16733
16734static const struct snd_kcontrol_new app_type_cfg_controls[] = {
16735 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
16736 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
16737 msm_routing_put_app_type_cfg_control),
16738 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
16739 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
16740};
16741
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016742static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
16743 struct snd_ctl_elem_value *ucontrol)
16744{
16745 int copp_idx, fe_id, be_id, port_type;
16746 int ret = 0;
16747 unsigned long copp;
16748 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016749 u8 *packed_params = NULL;
16750 struct param_hdr_v3 param_hdr;
16751 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
16752 sizeof(uint32_t));
16753
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016754 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
16755 SESSION_TYPE_RX;
16756 int app_type = ucontrol->value.integer.value[1];
16757 int module_id = ucontrol->value.integer.value[2];
16758 int instance_id = ucontrol->value.integer.value[3];
16759 int param_id = ucontrol->value.integer.value[4];
16760 int param_value = ucontrol->value.integer.value[5];
16761
16762 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
16763 MSM_AFE_PORT_TYPE_TX;
16764 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
16765 __func__, app_type, module_id,
16766 instance_id, param_id, param_value);
16767
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016768 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
16769 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016770 return -ENOMEM;
16771
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016772 memset(&param_hdr, 0, sizeof(param_hdr));
16773 param_hdr.module_id = module_id;
16774 param_hdr.instance_id = instance_id;
16775 param_hdr.param_id = param_id;
16776 param_hdr.param_size = sizeof(uint32_t);
16777
16778 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016779
16780 mutex_lock(&routing_lock);
16781 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
16782 if (is_be_dai_extproc(be_id))
16783 continue;
16784
16785 bedai = &msm_bedais[be_id];
16786 if (afe_get_port_type(bedai->port_id) != port_type)
16787 continue;
16788
16789 if (!bedai->active)
16790 continue;
16791
16792 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
16793 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
16794 continue;
16795
16796 if (app_type !=
16797 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
16798 continue;
16799
16800 copp = session_copp_map[fe_id][dir][be_id];
16801 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
16802 copp_idx++) {
16803 if (!test_bit(copp_idx, &copp))
16804 continue;
16805
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016806 ret = q6common_pack_pp_params(packed_params,
16807 &param_hdr,
16808 (u8 *) &param_value,
16809 &packed_param_size);
16810 if (ret) {
16811 pr_err("%s: Failed to pack params, error %d\n",
16812 __func__, ret);
16813 goto done;
16814 }
16815
16816 ret = adm_set_pp_params(bedai->port_id,
16817 copp_idx, NULL,
16818 packed_params,
16819 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016820 if (ret) {
16821 pr_err("%s: Setting param failed with err=%d\n",
16822 __func__, ret);
16823 ret = -EINVAL;
16824 goto done;
16825 }
16826 }
16827 }
16828 }
16829done:
16830 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016831 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070016832 return ret;
16833}
16834
16835static const struct snd_kcontrol_new module_cfg_controls[] = {
16836 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
16837 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
16838};
16839
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016840static int msm_routing_get_lsm_app_type_cfg_control(
16841 struct snd_kcontrol *kcontrol,
16842 struct snd_ctl_elem_value *ucontrol)
16843{
16844 return 0;
16845}
16846
16847static int msm_routing_put_lsm_app_type_cfg_control(
16848 struct snd_kcontrol *kcontrol,
16849 struct snd_ctl_elem_value *ucontrol)
16850{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016851 int shift = ((struct soc_multi_mixer_control *)
16852 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016853 int i = 0, j;
16854 int num_app_types = ucontrol->value.integer.value[i++];
16855
16856 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016857 sizeof(struct msm_pcm_routing_app_type_data));
16858
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016859 if (num_app_types > MAX_APP_TYPES) {
16860 pr_err("%s: number of app types exceed the max supported\n",
16861 __func__);
16862 return -EINVAL;
16863 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016864
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016865 for (j = 0; j < num_app_types; j++) {
16866 lsm_app_type_cfg[j].app_type =
16867 ucontrol->value.integer.value[i++];
16868 lsm_app_type_cfg[j].sample_rate =
16869 ucontrol->value.integer.value[i++];
16870 lsm_app_type_cfg[j].bit_width =
16871 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016872 /* Shift of 1 indicates this is V2 mixer control */
16873 if (shift == 1)
16874 lsm_app_type_cfg[j].num_out_channels =
16875 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016876 }
16877
16878 return 0;
16879}
16880
16881static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
16882 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
16883 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16884 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070016885 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
16886 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
16887 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016888};
16889
16890static int msm_routing_get_use_ds1_or_ds2_control(
16891 struct snd_kcontrol *kcontrol,
16892 struct snd_ctl_elem_value *ucontrol)
16893{
16894 ucontrol->value.integer.value[0] = is_ds2_on;
16895 return 0;
16896}
16897
16898static int msm_routing_put_use_ds1_or_ds2_control(
16899 struct snd_kcontrol *kcontrol,
16900 struct snd_ctl_elem_value *ucontrol)
16901{
16902 is_ds2_on = ucontrol->value.integer.value[0];
16903 return 0;
16904}
16905
16906static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
16907 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
16908 1, 0, msm_routing_get_use_ds1_or_ds2_control,
16909 msm_routing_put_use_ds1_or_ds2_control),
16910};
16911
16912int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
16913 struct snd_ctl_elem_value *ucontrol) {
16914 int rc = 0;
16915 int be_idx = 0;
16916 char *param_value;
16917 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016918 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
16919 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016920
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016921 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016922 if (!param_value)
16923 return -ENOMEM;
16924
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016925 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016926 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
16927 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
16928 break;
16929 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080016930 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
16931 param_hdr.instance_id = INSTANCE_ID_0;
16932 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
16933 param_hdr.param_size = param_size;
16934 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
16935 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016936 if (rc) {
16937 pr_err("%s: get parameters failed:%d\n", __func__, rc);
16938 kfree(param_value);
16939 return -EINVAL;
16940 }
16941 update_param_value = (int *)param_value;
16942 ucontrol->value.integer.value[0] = update_param_value[0];
16943
16944 pr_debug("%s: FROM DSP value[0] 0x%x\n",
16945 __func__, update_param_value[0]);
16946 }
16947 kfree(param_value);
16948 return 0;
16949}
16950
16951static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
16952 struct snd_ctl_elem_value *ucontrol)
16953{
16954 voc_session_id = ucontrol->value.integer.value[0];
16955
16956 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
16957
16958 return 0;
16959}
16960
16961static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
16962 struct snd_ctl_elem_value *ucontrol)
16963{
16964 ucontrol->value.integer.value[0] = voc_session_id;
16965
16966 return 0;
16967}
16968
16969static struct snd_kcontrol_new msm_voc_session_controls[] = {
16970 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
16971 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
16972 msm_voc_session_id_put),
16973};
16974
16975static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
16976 struct snd_ctl_elem_info *uinfo)
16977{
16978 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
16979 uinfo->count = sizeof(struct sound_focus_param);
16980
16981 return 0;
16982}
16983
16984static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
16985 struct snd_ctl_elem_value *ucontrol)
16986{
16987 int ret = 0;
16988 struct sound_focus_param soundFocusData;
16989
16990 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
16991 sizeof(struct sound_focus_param));
16992 ret = voc_set_sound_focus(soundFocusData);
16993 if (ret) {
16994 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
16995 __func__, ret);
16996
16997 ret = -EINVAL;
16998 }
16999
17000 return ret;
17001}
17002
17003static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17004 struct snd_ctl_elem_value *ucontrol)
17005{
17006 int ret = 0;
17007 struct sound_focus_param soundFocusData;
17008
17009 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17010
17011 ret = voc_get_sound_focus(&soundFocusData);
17012 if (ret) {
17013 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17014 __func__, ret);
17015
17016 ret = -EINVAL;
17017 goto done;
17018 }
17019 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17020 sizeof(struct sound_focus_param));
17021
17022done:
17023 return ret;
17024}
17025
17026static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17027 struct snd_ctl_elem_info *uinfo)
17028{
17029 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17030 uinfo->count = sizeof(struct source_tracking_param);
17031
17032 return 0;
17033}
17034
17035static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17036 struct snd_ctl_elem_value *ucontrol)
17037{
Meng Wang92edfde2018-04-24 12:18:37 +080017038 int ret = 0;
17039 struct source_tracking_param sourceTrackingData;
17040
17041 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17042
17043 ret = voc_get_source_tracking(&sourceTrackingData);
17044 if (ret) {
17045 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17046 __func__, ret);
17047
17048 ret = -EINVAL;
17049 goto done;
17050 }
17051 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17052 sizeof(struct source_tracking_param));
17053
17054done:
17055 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017056}
17057
17058static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17059 int *copp_idx)
17060{
17061 int i, idx, be_idx;
17062 int ret = 0;
17063 unsigned long copp;
17064
17065 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17066
17067 ret = q6audio_validate_port(port_id);
17068 if (ret < 0) {
17069 pr_err("%s: port validation failed id 0x%x ret %d\n",
17070 __func__, port_id, ret);
17071
17072 ret = -EINVAL;
17073 goto done;
17074 }
17075
17076 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17077 if (msm_bedais[be_idx].port_id == port_id)
17078 break;
17079 }
17080 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17081 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17082
17083 ret = -EINVAL;
17084 goto done;
17085 }
17086
17087 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17088 MSM_FRONTEND_DAI_MM_SIZE) {
17089 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17090 copp = session_copp_map[i]
17091 [session_type][be_idx];
17092 if (test_bit(idx, &copp))
17093 break;
17094 }
17095 if (idx >= MAX_COPPS_PER_PORT)
17096 continue;
17097 else
17098 break;
17099 }
17100 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
17101 pr_err("%s: Invalid FE, exiting\n", __func__);
17102
17103 ret = -EINVAL;
17104 goto done;
17105 }
17106 *copp_idx = idx;
17107 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17108
17109done:
17110 return ret;
17111}
17112
17113static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17114 const char *prefix, int *port_id)
17115{
17116 int ret = 0;
17117
17118 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17119
17120 /*
17121 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17122 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17123 * and compare the string with the backend name to derive the port id.
17124 */
17125 if (!strcmp(kcontrol->id.name + strlen(prefix),
17126 "SLIMBUS_0")) {
17127 *port_id = SLIMBUS_0_TX;
17128 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17129 "TERT_MI2S")) {
17130 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17131 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17132 "INT3_MI2S")) {
17133 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017134 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17135 "VA_CDC_DMA_TX_0")) {
17136 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017137 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17138 "TX_CDC_DMA_TX_3")) {
17139 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017140 } else {
17141 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17142 __func__, kcontrol->id.name);
17143
17144 ret = -EINVAL;
17145 goto done;
17146 }
17147 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17148 __func__, kcontrol->id.name, *port_id);
17149
17150done:
17151 return ret;
17152}
17153
17154static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17155 struct snd_ctl_elem_value *ucontrol)
17156{
17157 int ret = 0;
17158 struct sound_focus_param soundFocusData;
17159 int port_id, copp_idx;
17160
17161 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17162 "Sound Focus Audio Tx ", &port_id);
17163 if (ret != 0) {
17164 pr_err("%s: Error in deriving port id, err=%d\n",
17165 __func__, ret);
17166
17167 ret = -EINVAL;
17168 goto done;
17169 }
17170
17171 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17172 &copp_idx);
17173 if (ret) {
17174 pr_err("%s: Could not get copp idx for port_id=%d\n",
17175 __func__, port_id);
17176
17177 ret = -EINVAL;
17178 goto done;
17179 }
17180
17181 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17182 sizeof(struct sound_focus_param));
17183
17184 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17185 if (ret) {
17186 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17187 __func__, ret);
17188
17189 ret = -EINVAL;
17190 goto done;
17191 }
17192
17193done:
17194 return ret;
17195}
17196
17197static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17198 struct snd_ctl_elem_value *ucontrol)
17199{
17200 int ret = 0;
17201 struct sound_focus_param soundFocusData;
17202 int port_id, copp_idx;
17203
17204 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17205 "Sound Focus Audio Tx ", &port_id);
17206 if (ret) {
17207 pr_err("%s: Error in deriving port id, err=%d\n",
17208 __func__, ret);
17209
17210 ret = -EINVAL;
17211 goto done;
17212 }
17213
17214 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17215 &copp_idx);
17216 if (ret) {
17217 pr_err("%s: Could not get copp idx for port_id=%d\n",
17218 __func__, port_id);
17219
17220 ret = -EINVAL;
17221 goto done;
17222 }
17223
17224 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17225 if (ret) {
17226 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17227 __func__, ret);
17228
17229 ret = -EINVAL;
17230 goto done;
17231 }
17232
17233 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17234 sizeof(struct sound_focus_param));
17235
17236done:
17237 return ret;
17238}
17239
17240static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17241 struct snd_ctl_elem_value *ucontrol)
17242{
17243 int ret = 0;
17244 struct source_tracking_param sourceTrackingData;
17245 int port_id, copp_idx;
17246
17247 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17248 "Source Tracking Audio Tx ", &port_id);
17249 if (ret) {
17250 pr_err("%s: Error in deriving port id, err=%d\n",
17251 __func__, ret);
17252
17253 ret = -EINVAL;
17254 goto done;
17255 }
17256
17257 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17258 &copp_idx);
17259 if (ret) {
17260 pr_err("%s: Could not get copp idx for port_id=%d\n",
17261 __func__, port_id);
17262
17263 ret = -EINVAL;
17264 goto done;
17265 }
17266
17267 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17268 if (ret) {
17269 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17270 __func__, ret);
17271
17272 ret = -EINVAL;
17273 goto done;
17274 }
17275
17276 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17277 sizeof(struct source_tracking_param));
17278
17279done:
17280 return ret;
17281}
17282
17283static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17284 {
17285 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17286 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17287 .name = "Sound Focus Voice Tx SLIMBUS_0",
17288 .info = msm_sound_focus_info,
17289 .get = msm_voice_sound_focus_get,
17290 .put = msm_voice_sound_focus_put,
17291 },
17292 {
17293 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17294 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17295 .name = "Source Tracking Voice Tx SLIMBUS_0",
17296 .info = msm_source_tracking_info,
17297 .get = msm_voice_source_tracking_get,
17298 },
17299 {
17300 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17301 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17302 .name = "Sound Focus Audio Tx SLIMBUS_0",
17303 .info = msm_sound_focus_info,
17304 .get = msm_audio_sound_focus_get,
17305 .put = msm_audio_sound_focus_put,
17306 },
17307 {
17308 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17309 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17310 .name = "Source Tracking Audio Tx SLIMBUS_0",
17311 .info = msm_source_tracking_info,
17312 .get = msm_audio_source_tracking_get,
17313 },
17314 {
17315 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17316 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17317 .name = "Sound Focus Voice Tx TERT_MI2S",
17318 .info = msm_sound_focus_info,
17319 .get = msm_voice_sound_focus_get,
17320 .put = msm_voice_sound_focus_put,
17321 },
17322 {
17323 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17324 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17325 .name = "Source Tracking Voice Tx TERT_MI2S",
17326 .info = msm_source_tracking_info,
17327 .get = msm_voice_source_tracking_get,
17328 },
17329 {
17330 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17331 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17332 .name = "Sound Focus Audio Tx TERT_MI2S",
17333 .info = msm_sound_focus_info,
17334 .get = msm_audio_sound_focus_get,
17335 .put = msm_audio_sound_focus_put,
17336 },
17337 {
17338 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17339 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17340 .name = "Source Tracking Audio Tx TERT_MI2S",
17341 .info = msm_source_tracking_info,
17342 .get = msm_audio_source_tracking_get,
17343 },
17344 {
17345 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17346 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17347 .name = "Sound Focus Voice Tx INT3_MI2S",
17348 .info = msm_sound_focus_info,
17349 .get = msm_voice_sound_focus_get,
17350 .put = msm_voice_sound_focus_put,
17351 },
17352 {
17353 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17354 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17355 .name = "Source Tracking Voice Tx INT3_MI2S",
17356 .info = msm_source_tracking_info,
17357 .get = msm_voice_source_tracking_get,
17358 },
17359 {
17360 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17361 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17362 .name = "Sound Focus Audio Tx INT3_MI2S",
17363 .info = msm_sound_focus_info,
17364 .get = msm_audio_sound_focus_get,
17365 .put = msm_audio_sound_focus_put,
17366 },
17367 {
17368 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17369 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17370 .name = "Source Tracking Audio Tx INT3_MI2S",
17371 .info = msm_source_tracking_info,
17372 .get = msm_audio_source_tracking_get,
17373 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017374 {
17375 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17376 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17377 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17378 .info = msm_sound_focus_info,
17379 .get = msm_voice_sound_focus_get,
17380 .put = msm_voice_sound_focus_put,
17381 },
17382 {
17383 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17384 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17385 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17386 .info = msm_source_tracking_info,
17387 .get = msm_voice_source_tracking_get,
17388 },
17389 {
17390 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17391 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17392 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17393 .info = msm_sound_focus_info,
17394 .get = msm_audio_sound_focus_get,
17395 .put = msm_audio_sound_focus_put,
17396 },
17397 {
17398 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17399 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17400 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17401 .info = msm_source_tracking_info,
17402 .get = msm_audio_source_tracking_get,
17403 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017404 {
17405 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17406 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17407 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17408 .info = msm_sound_focus_info,
17409 .get = msm_voice_sound_focus_get,
17410 .put = msm_voice_sound_focus_put,
17411 },
17412 {
17413 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17414 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17415 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17416 .info = msm_source_tracking_info,
17417 .get = msm_voice_source_tracking_get,
17418 },
17419 {
17420 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17422 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17423 .info = msm_sound_focus_info,
17424 .get = msm_audio_sound_focus_get,
17425 .put = msm_audio_sound_focus_put,
17426 },
17427 {
17428 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17430 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17431 .info = msm_source_tracking_info,
17432 .get = msm_audio_source_tracking_get,
17433 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017434};
17435
17436static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17437 struct snd_ctl_elem_value *ucontrol)
17438{
17439 int ret = 0;
17440 int item;
17441 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17442
17443 pr_debug("%s item is %d\n", __func__,
17444 ucontrol->value.enumerated.item[0]);
17445 mutex_lock(&routing_lock);
17446 item = ucontrol->value.enumerated.item[0];
17447 if (item < e->items) {
17448 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17449 __func__, e->shift_l, e->values[item]);
17450 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17451 e->values[item] < MSM_BACKEND_DAI_MAX)
17452 /* Enable feedback TX path */
17453 ret = afe_spk_prot_feed_back_cfg(
17454 msm_bedais[e->values[item]].port_id,
17455 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17456 else {
17457 pr_debug("%s values are out of range item %d\n",
17458 __func__, e->values[item]);
17459 /* Disable feedback TX path */
17460 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17461 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17462 else
17463 ret = -EINVAL;
17464 }
17465 } else {
17466 pr_err("%s item value is out of range item\n", __func__);
17467 ret = -EINVAL;
17468 }
17469 mutex_unlock(&routing_lock);
17470 return ret;
17471}
17472
17473static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17474 struct snd_ctl_elem_value *ucontrol)
17475{
17476 int ret = 0;
17477 int item;
17478 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17479
17480 pr_debug("%s item is %d\n", __func__,
17481 ucontrol->value.enumerated.item[0]);
17482 mutex_lock(&routing_lock);
17483 item = ucontrol->value.enumerated.item[0];
17484 if (item < e->items) {
17485 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17486 __func__, e->shift_l, e->values[item]);
17487 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17488 e->values[item] < MSM_BACKEND_DAI_MAX)
17489 /* Enable feedback TX path */
17490 ret = afe_spk_prot_feed_back_cfg(
17491 msm_bedais[e->values[item]].port_id,
17492 msm_bedais[e->shift_l].port_id,
17493 1, 1, 1);
17494 else {
17495 pr_debug("%s values are out of range item %d\n",
17496 __func__, e->values[item]);
17497 /* Disable feedback TX path */
17498 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17499 ret = afe_spk_prot_feed_back_cfg(0,
17500 0, 0, 0, 0);
17501 else
17502 ret = -EINVAL;
17503 }
17504 } else {
17505 pr_err("%s item value is out of range item\n", __func__);
17506 ret = -EINVAL;
17507 }
17508 mutex_unlock(&routing_lock);
17509 return ret;
17510}
17511
17512static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17513 struct snd_ctl_elem_value *ucontrol)
17514{
17515 pr_debug("%s\n", __func__);
17516 return 0;
17517}
17518
17519static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17520 struct snd_ctl_elem_value *ucontrol)
17521{
17522 pr_debug("%s\n", __func__);
17523 ucontrol->value.enumerated.item[0] = 0;
17524 return 0;
17525}
17526
17527static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17528 "ZERO", "SLIM4_TX"
17529};
17530
17531static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17532 "ZERO", "SLIM4_TX"
17533};
17534
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017535static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17536 "ZERO", "WSA_CDC_DMA_TX_0"
17537};
17538
17539static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17540 "ZERO", "WSA_CDC_DMA_TX_0"
17541};
17542
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017543static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17544 "ZERO", "SENARY_TX"
17545};
17546
17547static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17548 "ZERO", "INT5_MI2S_TX"
17549};
17550
17551static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17552 "ZERO", "INT5_MI2S_TX"
17553};
17554
17555static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17556 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17557};
17558
17559static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17560 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17561};
17562
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017563static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17564 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17565};
17566
17567static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17568 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17569};
17570
17571
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017572static const int const mi2s_rx_vi_fb_tx_value[] = {
17573 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17574};
17575
17576static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17577 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17578};
17579
17580static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
17581 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
17582};
17583
17584static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
17585 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17586 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
17587 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
17588
17589static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
17590 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
17591 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
17592 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
17593
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017594static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
17595 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17596 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
17597 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
17598
17599static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
17600 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
17601 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
17602 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
17603
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017604static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
17605 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
17606 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
17607 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
17608
17609static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
17610 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17611 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
17612 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
17613 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
17614
17615static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
17616 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
17617 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
17618 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
17619 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
17620
17621static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
17622 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
17623 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17624 spkr_prot_put_vi_lch_port);
17625
17626static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
17627 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
17628 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17629 spkr_prot_put_vi_rch_port);
17630
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017631static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
17632 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
17633 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
17634 spkr_prot_put_vi_lch_port);
17635
17636static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
17637 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
17638 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
17639 spkr_prot_put_vi_rch_port);
17640
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017641static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
17642 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
17643 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
17644 spkr_prot_put_vi_lch_port);
17645
17646static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
17647 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
17648 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
17649 spkr_prot_put_vi_lch_port);
17650
17651static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
17652 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
17653 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
17654 spkr_prot_put_vi_rch_port);
17655
17656static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
17657 /* Frontend AIF */
17658 /* Widget name equals to Front-End DAI name<Need confirmation>,
17659 * Stream name must contains substring of front-end dai name
17660 */
17661 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
17662 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
17663 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
17664 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
17665 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
17666 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
17667 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
17668 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
17669 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
17670 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
17671 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
17672 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
17673 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
17674 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
17675 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
17676 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
17677 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017678 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017679 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
17680 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
17681 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
17682 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
17683 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
17684 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
17685 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
17686 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
17687 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053017688 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053017689 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017690 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
17691 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
17692 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
17693 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070017694 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080017695 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
17696 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017697 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
17698 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
17699 "VoiceMMode1 Playback", 0, 0, 0, 0),
17700 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
17701 "VoiceMMode1 Capture", 0, 0, 0, 0),
17702 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
17703 "VoiceMMode2 Playback", 0, 0, 0, 0),
17704 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
17705 "VoiceMMode2 Capture", 0, 0, 0, 0),
17706 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
17707 0, 0, 0, 0),
17708 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
17709 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053017710 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
17711 0, 0, 0, 0),
17712 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
17713 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053017714 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
17715 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017716 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
17717 0, 0, 0, 0),
17718 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
17719 0, 0, 0, 0),
17720 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
17721 0, 0, 0, 0),
17722 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
17723 0, 0, 0, 0),
17724 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
17725 0, 0, 0, 0),
17726 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
17727 0, 0, 0, 0),
17728 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
17729 0, 0, 0, 0),
17730 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
17731 0, 0, 0, 0),
17732 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
17733 0, 0, 0, 0),
17734 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
17735 0, 0, 0, 0),
17736 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
17737 0, 0, 0, 0),
17738 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
17739 0, 0, 0, 0),
17740 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
17741 0, 0, 0, 0),
17742 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
17743 0, 0, 0, 0),
17744 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
17745 0, 0, 0, 0),
17746 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
17747 0, 0, 0, 0),
17748 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
17749 0, 0, 0, 0),
17750 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
17751 0, 0, 0, 0),
17752 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
17753 0, 0, 0, 0),
17754 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
17755 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
17756 0, 0, 0, 0),
17757 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
17758 "INT0 MI2S_RX Hostless Playback",
17759 0, 0, 0, 0),
17760 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
17761 "INT4 MI2S_RX Hostless Playback",
17762 0, 0, 0, 0),
17763 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
17764 "Primary MI2S_RX Hostless Playback",
17765 0, 0, 0, 0),
17766 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
17767 "Secondary MI2S_RX Hostless Playback",
17768 0, 0, 0, 0),
17769 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
17770 "Tertiary MI2S_RX Hostless Playback",
17771 0, 0, 0, 0),
17772 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
17773 "Quaternary MI2S_RX Hostless Playback",
17774 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017775 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
17776 "Quinary MI2S_RX Hostless Playback",
17777 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017778
17779 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
17780 0, 0, 0, 0),
17781 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
17782 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080017783 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
17784 0, 0, 0, 0),
17785 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
17786 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
17788 0, 0, 0, 0),
17789 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
17790 "INT3 MI2S_TX Hostless Capture",
17791 0, 0, 0, 0),
17792 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
17793 "Tertiary MI2S_TX Hostless Capture",
17794 0, 0, 0, 0),
17795 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
17796 "Secondary MI2S_TX Hostless Capture",
17797 0, 0, 0, 0),
17798 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
17799 "Primary MI2S_TX Hostless Capture",
17800 0, 0, 0, 0),
17801 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
17802 0, 0, 0, 0),
17803 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
17804 0, 0, 0, 0),
17805 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
17806 "Quaternary MI2S_TX Hostless Capture",
17807 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053017808 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
17809 "Quinary MI2S_TX Hostless Capture",
17810 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017811
17812 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
17813 "Primary TDM0 Hostless Playback",
17814 0, 0, 0, 0),
17815 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
17816 "Primary TDM0 Hostless Capture",
17817 0, 0, 0, 0),
17818 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
17819 "Primary TDM1 Hostless Playback",
17820 0, 0, 0, 0),
17821 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
17822 "Primary TDM1 Hostless Capture",
17823 0, 0, 0, 0),
17824 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
17825 "Primary TDM2 Hostless Playback",
17826 0, 0, 0, 0),
17827 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
17828 "Primary TDM2 Hostless Capture",
17829 0, 0, 0, 0),
17830 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
17831 "Primary TDM3 Hostless Playback",
17832 0, 0, 0, 0),
17833 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
17834 "Primary TDM3 Hostless Capture",
17835 0, 0, 0, 0),
17836 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
17837 "Primary TDM4 Hostless Playback",
17838 0, 0, 0, 0),
17839 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
17840 "Primary TDM4 Hostless Capture",
17841 0, 0, 0, 0),
17842 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
17843 "Primary TDM5 Hostless Playback",
17844 0, 0, 0, 0),
17845 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
17846 "Primary TDM5 Hostless Capture",
17847 0, 0, 0, 0),
17848 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
17849 "Primary TDM6 Hostless Playback",
17850 0, 0, 0, 0),
17851 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
17852 "Primary TDM6 Hostless Capture",
17853 0, 0, 0, 0),
17854 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
17855 "Primary TDM7 Hostless Playback",
17856 0, 0, 0, 0),
17857 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
17858 "Primary TDM7 Hostless Capture",
17859 0, 0, 0, 0),
17860 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
17861 "Secondary TDM0 Hostless Playback",
17862 0, 0, 0, 0),
17863 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
17864 "Secondary TDM0 Hostless Capture",
17865 0, 0, 0, 0),
17866 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
17867 "Secondary TDM1 Hostless Playback",
17868 0, 0, 0, 0),
17869 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
17870 "Secondary TDM1 Hostless Capture",
17871 0, 0, 0, 0),
17872 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
17873 "Secondary TDM2 Hostless Playback",
17874 0, 0, 0, 0),
17875 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
17876 "Secondary TDM2 Hostless Capture",
17877 0, 0, 0, 0),
17878 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
17879 "Secondary TDM3 Hostless Playback",
17880 0, 0, 0, 0),
17881 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
17882 "Secondary TDM3 Hostless Capture",
17883 0, 0, 0, 0),
17884 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
17885 "Secondary TDM4 Hostless Playback",
17886 0, 0, 0, 0),
17887 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
17888 "Secondary TDM4 Hostless Capture",
17889 0, 0, 0, 0),
17890 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
17891 "Secondary TDM5 Hostless Playback",
17892 0, 0, 0, 0),
17893 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
17894 "Secondary TDM5 Hostless Capture",
17895 0, 0, 0, 0),
17896 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
17897 "Secondary TDM6 Hostless Playback",
17898 0, 0, 0, 0),
17899 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
17900 "Secondary TDM6 Hostless Capture",
17901 0, 0, 0, 0),
17902 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
17903 "Secondary TDM7 Hostless Playback",
17904 0, 0, 0, 0),
17905 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
17906 "Secondary TDM7 Hostless Capture",
17907 0, 0, 0, 0),
17908 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
17909 "Tertiary TDM0 Hostless Playback",
17910 0, 0, 0, 0),
17911 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
17912 "Tertiary TDM0 Hostless Capture",
17913 0, 0, 0, 0),
17914 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
17915 "Tertiary TDM1 Hostless Playback",
17916 0, 0, 0, 0),
17917 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
17918 "Tertiary TDM1 Hostless Capture",
17919 0, 0, 0, 0),
17920 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
17921 "Tertiary TDM2 Hostless Playback",
17922 0, 0, 0, 0),
17923 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
17924 "Tertiary TDM2 Hostless Capture",
17925 0, 0, 0, 0),
17926 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
17927 "Tertiary TDM3 Hostless Playback",
17928 0, 0, 0, 0),
17929 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
17930 "Tertiary TDM3 Hostless Capture",
17931 0, 0, 0, 0),
17932 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
17933 "Tertiary TDM4 Hostless Playback",
17934 0, 0, 0, 0),
17935 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
17936 "Tertiary TDM4 Hostless Capture",
17937 0, 0, 0, 0),
17938 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
17939 "Tertiary TDM5 Hostless Playback",
17940 0, 0, 0, 0),
17941 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
17942 "Tertiary TDM5 Hostless Capture",
17943 0, 0, 0, 0),
17944 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
17945 "Tertiary TDM6 Hostless Playback",
17946 0, 0, 0, 0),
17947 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
17948 "Tertiary TDM6 Hostless Capture",
17949 0, 0, 0, 0),
17950 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
17951 "Tertiary TDM7 Hostless Playback",
17952 0, 0, 0, 0),
17953 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
17954 "Tertiary TDM7 Hostless Capture",
17955 0, 0, 0, 0),
17956 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
17957 "Quaternary TDM0 Hostless Playback",
17958 0, 0, 0, 0),
17959 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
17960 "Quaternary TDM0 Hostless Capture",
17961 0, 0, 0, 0),
17962 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
17963 "Quaternary TDM1 Hostless Playback",
17964 0, 0, 0, 0),
17965 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
17966 "Quaternary TDM1 Hostless Capture",
17967 0, 0, 0, 0),
17968 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
17969 "Quaternary TDM2 Hostless Playback",
17970 0, 0, 0, 0),
17971 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
17972 "Quaternary TDM2 Hostless Capture",
17973 0, 0, 0, 0),
17974 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
17975 "Quaternary TDM3 Hostless Playback",
17976 0, 0, 0, 0),
17977 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
17978 "Quaternary TDM3 Hostless Capture",
17979 0, 0, 0, 0),
17980 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
17981 "Quaternary TDM4 Hostless Playback",
17982 0, 0, 0, 0),
17983 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
17984 "Quaternary TDM4 Hostless Capture",
17985 0, 0, 0, 0),
17986 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
17987 "Quaternary TDM5 Hostless Playback",
17988 0, 0, 0, 0),
17989 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
17990 "Quaternary TDM5 Hostless Capture",
17991 0, 0, 0, 0),
17992 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
17993 "Quaternary TDM6 Hostless Playback",
17994 0, 0, 0, 0),
17995 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
17996 "Quaternary TDM6 Hostless Capture",
17997 0, 0, 0, 0),
17998 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
17999 "Quaternary TDM7 Hostless Playback",
18000 0, 0, 0, 0),
18001 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18002 "Quaternary TDM7 Hostless Capture",
18003 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018004 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18005 "Quinary TDM0 Hostless Playback",
18006 0, 0, 0, 0),
18007 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18008 "Quinary TDM0 Hostless Capture",
18009 0, 0, 0, 0),
18010 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18011 "Quinary TDM1 Hostless Playback",
18012 0, 0, 0, 0),
18013 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18014 "Quinary TDM1 Hostless Capture",
18015 0, 0, 0, 0),
18016 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18017 "Quinary TDM2 Hostless Playback",
18018 0, 0, 0, 0),
18019 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18020 "Quinary TDM2 Hostless Capture",
18021 0, 0, 0, 0),
18022 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18023 "Quinary TDM3 Hostless Playback",
18024 0, 0, 0, 0),
18025 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18026 "Quinary TDM3 Hostless Capture",
18027 0, 0, 0, 0),
18028 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18029 "Quinary TDM4 Hostless Playback",
18030 0, 0, 0, 0),
18031 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18032 "Quinary TDM4 Hostless Capture",
18033 0, 0, 0, 0),
18034 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18035 "Quinary TDM5 Hostless Playback",
18036 0, 0, 0, 0),
18037 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18038 "Quinary TDM5 Hostless Capture",
18039 0, 0, 0, 0),
18040 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18041 "Quinary TDM6 Hostless Playback",
18042 0, 0, 0, 0),
18043 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18044 "Quinary TDM6 Hostless Capture",
18045 0, 0, 0, 0),
18046 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18047 "Quinary TDM7 Hostless Playback",
18048 0, 0, 0, 0),
18049 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18050 "Quinary TDM7 Hostless Capture",
18051 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018052
18053 /* LSM */
18054 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18055 0, 0, 0, 0),
18056 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18057 0, 0, 0, 0),
18058 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18059 0, 0, 0, 0),
18060 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18061 0, 0, 0, 0),
18062 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18063 0, 0, 0, 0),
18064 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18065 0, 0, 0, 0),
18066 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18067 0, 0, 0, 0),
18068 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18069 0, 0, 0, 0),
18070 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18071 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18072 /* Backend AIF */
18073 /* Stream name equals to backend dai link stream name */
18074 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18075 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18076 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018077 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18078 0, 0, 0, 0),
18079 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18080 0, 0, 0, 0),
18081 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18082 0, 0, 0, 0),
18083 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18084 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018085 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18086 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18087 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18088 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18089 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18090 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018091 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18092 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018093 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18094 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18095 0, 0, 0, 0),
18096 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18097 0, 0, 0, 0),
18098 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18099 0, 0, 0, 0),
18100 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18101 "Secondary MI2S Playback SD1",
18102 0, 0, 0, 0),
18103 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18104 0, 0, 0, 0),
18105 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18106 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018107 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18108 0, 0, 0, 0),
18109 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18110 0, 0, 0, 0),
18111 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18112 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018113 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18114 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018115 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18116 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018117 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18118 0, 0, 0, 0),
18119 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18120 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18121 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18122 0, 0, 0, 0),
18123 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18124 0, 0, 0, 0),
18125 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18126 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018127 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18128 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018129 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18130 0, 0, 0, 0),
18131 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18132 0, 0, 0, 0),
18133 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18134 0, 0, 0, 0),
18135 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18136 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18137 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18138 0, 0, 0, 0),
18139 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18140 0, 0, 0, 0),
18141 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18142 0, 0, 0, 0),
18143 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18144 0, 0, 0, 0),
18145 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18146 0, 0, 0, 0),
18147 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18148 0, 0, 0, 0),
18149 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18150 0, 0, 0, 0),
18151 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18152 0, 0, 0, 0),
18153 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18154 0, 0, 0, 0),
18155 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18156 0, 0, 0, 0),
18157 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18158 0, 0, 0, 0),
18159 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18160 0, 0, 0, 0),
18161 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18162 0, 0, 0, 0),
18163 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18164 0, 0, 0, 0),
18165 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18166 0, 0, 0, 0),
18167 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18168 0, 0, 0, 0),
18169 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18170 0, 0, 0, 0),
18171 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18172 0, 0, 0, 0),
18173 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18174 0, 0, 0, 0),
18175 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18176 0, 0, 0, 0),
18177 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18178 0, 0, 0, 0),
18179 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18180 0, 0, 0, 0),
18181 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18182 0, 0, 0, 0),
18183 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18184 0, 0, 0, 0),
18185 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18186 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18188 0, 0, 0, 0),
18189 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18190 0, 0, 0, 0),
18191 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18192 0, 0, 0, 0),
18193 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18194 0, 0, 0, 0),
18195 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18196 0, 0, 0, 0),
18197 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18198 0, 0, 0, 0),
18199 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18200 0, 0, 0, 0),
18201 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18202 0, 0, 0, 0),
18203 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18204 0, 0, 0, 0),
18205 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18206 0, 0, 0, 0),
18207 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18208 0, 0, 0, 0),
18209 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18210 0, 0, 0, 0),
18211 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18212 0, 0, 0, 0),
18213 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18214 0, 0, 0, 0),
18215 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18216 0, 0, 0, 0),
18217 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18218 0, 0, 0, 0),
18219 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18220 0, 0, 0, 0),
18221 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18222 0, 0, 0, 0),
18223 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18224 0, 0, 0, 0),
18225 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18226 0, 0, 0, 0),
18227 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18228 0, 0, 0, 0),
18229 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18230 0, 0, 0, 0),
18231 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18232 0, 0, 0, 0),
18233 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18234 0, 0, 0, 0),
18235 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18236 0, 0, 0, 0),
18237 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18238 0, 0, 0, 0),
18239 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18240 0, 0, 0, 0),
18241 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18242 0, 0, 0, 0),
18243 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18244 0, 0, 0, 0),
18245 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18246 0, 0, 0, 0),
18247 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18248 0, 0, 0, 0),
18249 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18250 0, 0, 0, 0),
18251 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18252 0, 0, 0, 0),
18253 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18254 0, 0, 0, 0),
18255 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18256 0, 0, 0, 0),
18257 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18258 0, 0, 0, 0),
18259 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18260 0, 0, 0, 0),
18261 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18262 0, 0, 0, 0),
18263 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18264 0, 0, 0, 0),
18265 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18266 0, 0, 0, 0),
18267 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18268 0, 0, 0, 0),
18269 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18270 0, 0, 0, 0),
18271 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18272 0, 0, 0, 0),
18273 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18274 0, 0, 0, 0),
18275 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18276 0, 0, 0, 0),
18277 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18278 0, 0, 0, 0),
18279 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18280 0, 0, 0, 0),
18281 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18282 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018283 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18284 0, 0, 0, 0),
18285 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18286 0, 0, 0, 0),
18287 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18288 0, 0, 0, 0),
18289 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18290 0, 0, 0, 0),
18291 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18292 0, 0, 0, 0),
18293 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18294 0, 0, 0, 0),
18295 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18296 0, 0, 0, 0),
18297 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18298 0, 0, 0, 0),
18299 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18300 0, 0, 0, 0),
18301 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18302 0, 0, 0, 0),
18303 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18304 0, 0, 0, 0),
18305 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18306 0, 0, 0, 0),
18307 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18308 0, 0, 0, 0),
18309 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18310 0, 0, 0, 0),
18311 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18312 0, 0, 0, 0),
18313 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18314 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018315 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18316 0, 0, 0, 0),
18317 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18318 0, 0, 0, 0),
18319 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18320 0, 0, 0, 0),
18321 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18322 0, 0, 0, 0),
18323 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18324 0, 0, 0, 0),
18325 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18326 0, 0, 0, 0),
18327 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18328 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018329 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18330 0, 0, 0, 0),
18331 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18332 0, 0, 0, 0),
18333 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18334 0, 0, 0, 0),
18335 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18336 0, 0, 0, 0),
18337 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18338 0, 0, 0, 0),
18339 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18340 0, 0, 0, 0),
18341 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18342 0, 0, 0, 0),
18343 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18344 0, 0, 0, 0),
18345 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18346 0, 0, 0, 0),
18347 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18348 0, 0, 0, 0),
18349 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18350 0, 0, 0, 0),
18351 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18352 0, 0, 0, 0),
18353 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18354 0, 0, 0, 0),
18355 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18356 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018357 /* incall */
18358 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18359 0, 0, 0, 0),
18360 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18361 0, 0, 0, 0),
18362 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18363 0, 0, 0, 0),
18364 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18365 0, 0, 0, 0),
18366 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18367 0, 0, 0, 0),
18368 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18369 0, 0, 0, 0),
18370 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18371 0, 0, 0, 0),
18372 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18373 0, 0, 0, 0),
18374 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18375
18376 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18377 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18378 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18379 0, 0, 0, 0),
18380 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18381 0, 0, 0, 0),
18382 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18383 0, 0, 0, 0),
18384 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18385 0, 0, 0, 0),
18386 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18387 0, 0, 0, 0),
18388 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18389 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018390 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18391 0, 0, 0, 0),
18392 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18393 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018394 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18395 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18396 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18397 0, 0, 0, 0),
18398 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18399 0, 0, 0, 0),
18400 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18401 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18402 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18403 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18404 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18405 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18406 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18408 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18409 /* In- call recording */
18410 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18411 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18412
18413 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18414 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18415
18416 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18417 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
18418 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18419 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18420
18421 /* Switch Definitions */
18422 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18423 &slim_fm_switch_mixer_controls),
18424 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18425 &slim1_fm_switch_mixer_controls),
18426 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18427 &slim3_fm_switch_mixer_controls),
18428 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18429 &slim4_fm_switch_mixer_controls),
18430 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18431 &slim6_fm_switch_mixer_controls),
18432 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18433 &pcm_rx_switch_mixer_controls),
18434 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18435 &int0_mi2s_rx_switch_mixer_controls),
18436 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18437 &int4_mi2s_rx_switch_mixer_controls),
18438 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18439 &pri_mi2s_rx_switch_mixer_controls),
18440 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18441 &sec_mi2s_rx_switch_mixer_controls),
18442 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18443 &tert_mi2s_rx_switch_mixer_controls),
18444 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18445 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018446 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18447 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018448 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18449 &hfp_pri_aux_switch_mixer_controls),
18450 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18451 &hfp_aux_switch_mixer_controls),
18452 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18453 &hfp_int_switch_mixer_controls),
18454 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18455 &hfp_slim7_switch_mixer_controls),
18456 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18457 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018458 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18459 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018460 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018461 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018462 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018463 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018464
18465 /* Mixer definitions */
18466 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18467 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18468 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18469 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18470 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18471 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18472 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18473 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18474 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18475 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18476 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18477 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
18478 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18479 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18480 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18481 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018482 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18483 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018484 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18485 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18486 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18487 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018488 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18489 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18490 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18491 quaternary_mi2s_rx_mixer_controls,
18492 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18493 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18494 tertiary_mi2s_rx_mixer_controls,
18495 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18496 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18497 secondary_mi2s_rx_mixer_controls,
18498 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18499 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18500 secondary_mi2s_rx2_mixer_controls,
18501 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18502 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18503 primary_mi2s_rx_mixer_controls,
18504 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18505 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18506 int0_mi2s_rx_mixer_controls,
18507 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18508 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18509 int4_mi2s_rx_mixer_controls,
18510 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18511 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18512 quinary_mi2s_rx_mixer_controls,
18513 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18514 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18515 pri_tdm_rx_0_mixer_controls,
18516 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18517 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18518 pri_tdm_rx_1_mixer_controls,
18519 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18520 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18521 pri_tdm_rx_2_mixer_controls,
18522 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18523 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18524 pri_tdm_rx_3_mixer_controls,
18525 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18526 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18527 pri_tdm_tx_0_mixer_controls,
18528 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18529 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18530 sec_tdm_rx_0_mixer_controls,
18531 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18532 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18533 sec_tdm_rx_1_mixer_controls,
18534 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18535 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18536 sec_tdm_rx_2_mixer_controls,
18537 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18538 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18539 sec_tdm_rx_3_mixer_controls,
18540 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18541 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18542 sec_tdm_tx_0_mixer_controls,
18543 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18544 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18545 tert_tdm_rx_0_mixer_controls,
18546 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18547 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18548 tert_tdm_tx_0_mixer_controls,
18549 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18550 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18551 tert_tdm_rx_1_mixer_controls,
18552 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18553 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18554 tert_tdm_rx_2_mixer_controls,
18555 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18556 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18557 tert_tdm_rx_3_mixer_controls,
18558 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18559 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18560 tert_tdm_rx_4_mixer_controls,
18561 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18562 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18563 quat_tdm_rx_0_mixer_controls,
18564 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18565 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18566 quat_tdm_tx_0_mixer_controls,
18567 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18568 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18569 quat_tdm_rx_1_mixer_controls,
18570 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18571 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18572 quat_tdm_rx_2_mixer_controls,
18573 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
18574 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18575 quat_tdm_rx_3_mixer_controls,
18576 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018577 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18578 quin_tdm_rx_0_mixer_controls,
18579 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
18580 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18581 quin_tdm_tx_0_mixer_controls,
18582 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
18583 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18584 quin_tdm_rx_1_mixer_controls,
18585 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
18586 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18587 quin_tdm_rx_2_mixer_controls,
18588 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
18589 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18590 quin_tdm_rx_3_mixer_controls,
18591 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018592 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18593 wsa_cdc_dma_rx_0_mixer_controls,
18594 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
18595 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18596 wsa_cdc_dma_rx_1_mixer_controls,
18597 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018598 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18599 rx_cdc_dma_rx_0_mixer_controls,
18600 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
18601 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18602 rx_cdc_dma_rx_1_mixer_controls,
18603 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
18604 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18605 rx_cdc_dma_rx_2_mixer_controls,
18606 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
18607 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18608 rx_cdc_dma_rx_3_mixer_controls,
18609 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
18610 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18611 rx_cdc_dma_rx_4_mixer_controls,
18612 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
18613 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
18614 rx_cdc_dma_rx_5_mixer_controls,
18615 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
18616 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
18617 rx_cdc_dma_rx_6_mixer_controls,
18618 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
18619 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
18620 rx_cdc_dma_rx_7_mixer_controls,
18621 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018622 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
18623 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
18624 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
18625 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
18626 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
18627 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
18628 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
18629 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
18630 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
18631 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
18632 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
18633 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
18634 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
18635 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
18636 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
18637 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018638 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
18639 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018640 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
18641 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018642 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
18643 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
18644 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
18645 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
18646 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
18647 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
18648 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
18649 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018650 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
18651 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053018652 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
18653 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
18654 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
18655 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018656 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18657 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
18658 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18659 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
18660 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18661 tert_auxpcm_rx_mixer_controls,
18662 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
18663 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18664 quat_auxpcm_rx_mixer_controls,
18665 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018666 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18667 quin_auxpcm_rx_mixer_controls,
18668 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018669 /* incall */
18670 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
18671 incall_music_delivery_mixer_controls,
18672 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
18673 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18674 incall_music2_delivery_mixer_controls,
18675 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
18676 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18677 slimbus_4_rx_mixer_controls,
18678 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
18679 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18680 slimbus_6_rx_mixer_controls,
18681 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
18682 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18683 usb_audio_rx_mixer_controls,
18684 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
18685 /* Voice Mixer */
18686 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
18687 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
18688 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
18689 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
18690 SND_SOC_NOPM, 0, 0,
18691 sec_i2s_rx_voice_mixer_controls,
18692 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
18693 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
18694 SND_SOC_NOPM, 0, 0,
18695 sec_mi2s_rx_voice_mixer_controls,
18696 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
18697 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
18698 SND_SOC_NOPM, 0, 0,
18699 slimbus_rx_voice_mixer_controls,
18700 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
18701 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
18702 SND_SOC_NOPM, 0, 0,
18703 bt_sco_rx_voice_mixer_controls,
18704 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
18705 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
18706 SND_SOC_NOPM, 0, 0,
18707 afe_pcm_rx_voice_mixer_controls,
18708 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
18709 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
18710 SND_SOC_NOPM, 0, 0,
18711 aux_pcm_rx_voice_mixer_controls,
18712 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
18713 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
18714 SND_SOC_NOPM, 0, 0,
18715 sec_aux_pcm_rx_voice_mixer_controls,
18716 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
18717 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
18718 SND_SOC_NOPM, 0, 0,
18719 tert_aux_pcm_rx_voice_mixer_controls,
18720 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
18721 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
18722 SND_SOC_NOPM, 0, 0,
18723 quat_aux_pcm_rx_voice_mixer_controls,
18724 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018725 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
18726 SND_SOC_NOPM, 0, 0,
18727 quin_aux_pcm_rx_voice_mixer_controls,
18728 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018729 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
18730 SND_SOC_NOPM, 0, 0,
18731 hdmi_rx_voice_mixer_controls,
18732 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
18733 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
18734 SND_SOC_NOPM, 0, 0,
18735 mi2s_rx_voice_mixer_controls,
18736 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
18737 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
18738 SND_SOC_NOPM, 0, 0,
18739 pri_mi2s_rx_voice_mixer_controls,
18740 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
18741 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
18742 SND_SOC_NOPM, 0, 0,
18743 int0_mi2s_rx_voice_mixer_controls,
18744 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
18745 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
18746 SND_SOC_NOPM, 0, 0,
18747 int4_mi2s_rx_voice_mixer_controls,
18748 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
18749 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
18750 SND_SOC_NOPM, 0, 0,
18751 tert_mi2s_rx_voice_mixer_controls,
18752 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
18753 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
18754 SND_SOC_NOPM, 0, 0,
18755 quat_mi2s_rx_voice_mixer_controls,
18756 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
18757 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
18758 SND_SOC_NOPM, 0, 0,
18759 quin_mi2s_rx_voice_mixer_controls,
18760 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
18761 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
18762 SND_SOC_NOPM, 0, 0,
18763 quat_tdm_rx_2_voice_mixer_controls,
18764 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018765 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
18766 SND_SOC_NOPM, 0, 0,
18767 wsa_cdc_dma_rx_0_voice_mixer_controls,
18768 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
18769 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
18770 SND_SOC_NOPM, 0, 0,
18771 rx_cdc_dma_rx_0_voice_mixer_controls,
18772 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018773 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
18774 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
18775 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018776 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
18777 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
18778 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
18779 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
18780 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
18781 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
18782 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18783 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
18784 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18785 int_bt_a2dp_rx_mixer_controls,
18786 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
18787 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18788 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
18789 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18790 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
18791 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18792 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
18793 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18794 tx_voice2_stub_mixer_controls,
18795 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
18796 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
18797 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
18798 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
18799 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
18800 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
18801 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
18802 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18803 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
18804 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
18805 SND_SOC_NOPM, 0, 0,
18806 slimbus_6_rx_voice_mixer_controls,
18807 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
18808 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18809 slimbus_7_rx_voice_mixer_controls,
18810 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
18811 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
18812 slimbus_8_rx_voice_mixer_controls,
18813 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
18814 /* port mixer */
18815 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
18816 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
18817 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
18818 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
18819 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
18820 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
18821 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
18822 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
18823 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
18824 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
18825 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
18826 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
18827 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
18828 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
18829 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018830 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
18831 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
18832 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018833 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18834 sbus_1_rx_port_mixer_controls,
18835 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
18836 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18837 bt_sco_rx_port_mixer_controls,
18838 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
18839 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
18840 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
18841 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
18842 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
18843 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
18844 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
18845 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
18846 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
18847 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070018848 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070018849 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
18850 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018851 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
18852 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
18853 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
18854 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
18855 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
18856 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
18857 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
18858 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
18859 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
18860 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18861 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
18862 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18863 primary_mi2s_rx_port_mixer_controls,
18864 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
18865 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18866 sec_mi2s_rx_port_mixer_controls,
18867 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
18868 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18869 tert_mi2s_rx_port_mixer_controls,
18870 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
18871 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18872 quat_mi2s_rx_port_mixer_controls,
18873 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018874 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18875 quin_mi2s_rx_port_mixer_controls,
18876 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018877 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18878 pri_tdm_rx_0_port_mixer_controls,
18879 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
18880 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18881 pri_tdm_rx_1_port_mixer_controls,
18882 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
18883 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18884 pri_tdm_rx_2_port_mixer_controls,
18885 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
18886 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18887 pri_tdm_rx_3_port_mixer_controls,
18888 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
18889 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18890 sec_tdm_rx_0_port_mixer_controls,
18891 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
18892 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18893 sec_tdm_rx_1_port_mixer_controls,
18894 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
18895 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18896 sec_tdm_rx_2_port_mixer_controls,
18897 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
18898 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18899 sec_tdm_rx_3_port_mixer_controls,
18900 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
18901 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18902 tert_tdm_rx_0_port_mixer_controls,
18903 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
18904 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18905 tert_tdm_rx_1_port_mixer_controls,
18906 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
18907 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18908 tert_tdm_rx_2_port_mixer_controls,
18909 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
18910 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18911 tert_tdm_rx_3_port_mixer_controls,
18912 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
18913 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18914 quat_tdm_rx_0_port_mixer_controls,
18915 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
18916 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18917 quat_tdm_rx_1_port_mixer_controls,
18918 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
18919 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18920 quat_tdm_rx_2_port_mixer_controls,
18921 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
18922 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18923 quat_tdm_rx_3_port_mixer_controls,
18924 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053018925 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18926 quin_tdm_rx_0_port_mixer_controls,
18927 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
18928 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
18929 quin_tdm_rx_1_port_mixer_controls,
18930 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
18931 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
18932 quin_tdm_rx_2_port_mixer_controls,
18933 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
18934 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
18935 quin_tdm_rx_3_port_mixer_controls,
18936 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018937 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18938 int0_mi2s_rx_port_mixer_controls,
18939 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
18940 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
18941 int4_mi2s_rx_port_mixer_controls,
18942 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018943 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18944 wsa_cdc_dma_rx_0_port_mixer_controls,
18945 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
18946 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
18947 rx_cdc_dma_rx_0_port_mixer_controls,
18948 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018949 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
18950 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
18951 ARRAY_SIZE(tx_qchat_mixer_controls)),
18952 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
18953 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
18954 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
18955 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
18956 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
18957 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080018958 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
18959 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
18960 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018961 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
18962 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
18963 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018964 /* lsm mixer definitions */
18965 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
18966 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
18967 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
18968 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
18969 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
18970 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
18971 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
18972 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
18973 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
18974 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
18975 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
18976 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
18977 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
18978 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
18979 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
18980 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
18981 /* Virtual Pins to force backends ON atm */
18982 SND_SOC_DAPM_OUTPUT("BE_OUT"),
18983 SND_SOC_DAPM_INPUT("BE_IN"),
18984
18985 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18986 &slim0_rx_vi_fb_lch_mux),
18987 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18988 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018989 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
18990 &wsa_rx_0_vi_fb_lch_mux),
18991 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
18992 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018993 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
18994 &mi2s_rx_vi_fb_mux),
18995 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
18996 &int4_mi2s_rx_vi_fb_mono_ch_mux),
18997 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
18998 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
18999
19000 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19001 &voc_ext_ec_mux),
19002 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19003 &ext_ec_ref_mux_ul1),
19004 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19005 &ext_ec_ref_mux_ul2),
19006 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19007 &ext_ec_ref_mux_ul3),
19008 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19009 &ext_ec_ref_mux_ul4),
19010 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19011 &ext_ec_ref_mux_ul5),
19012 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19013 &ext_ec_ref_mux_ul6),
19014 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19015 &ext_ec_ref_mux_ul8),
19016 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19017 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019018 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19019 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019020 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19021 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019022 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19023 &ext_ec_ref_mux_ul17),
19024 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19025 &ext_ec_ref_mux_ul18),
19026 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19027 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019028 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19029 &ext_ec_ref_mux_ul28),
19030 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19031 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019032};
19033
19034static const struct snd_soc_dapm_route intercon[] = {
19035 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19036 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19037 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19038 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19039 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19040 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19041 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19042 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19043 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19044 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19045 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19046 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19047 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19048 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19049 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19050 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19051 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19052
19053 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19054 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19055 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19056 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19057 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19058 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19059 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19060 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19061 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19062 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19063 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19064 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19065 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19066 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19067 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19068 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19069 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19070
19071 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19072 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19073 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19074 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19075 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19076 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19077 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19078 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19079 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19080 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19081 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19082 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19083 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19084 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19085 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19086 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19087 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19088
19089 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19090 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19091 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19092 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19093 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19094 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19095 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19096 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19097 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19098 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19099 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19100 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19101 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19102 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19103 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19104 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19105 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19106
19107 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19108 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19109 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19110 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19111 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19112 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19113 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19114 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19115 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19116 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19117 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19118 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19119 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19120 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19121 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19122 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19123 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19124
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019125 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19126 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19127 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19128 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19129 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19130 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19131 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19132 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19133 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19134 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19135 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19136 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19137 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19138 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19139 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19140 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19141 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19142
19143 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19144 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19145 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19146 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19147 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19148 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19149 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19150 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19151 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19152 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19153 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19154 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19155 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19156 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19157 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19158 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19159 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19160
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019161 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19162 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19163 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19164 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19165 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19166 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19167 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19168 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19169 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19170 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19171 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19172 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19173 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19174 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19175 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19176 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19177 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19178
19179 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19180 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19181 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19182 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19183 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19184 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19185 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19186 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19187 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19188 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19189 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19190 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19191 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19192 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19193 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19194 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
19195 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19196
19197 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19198 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19199 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19200 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19201 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19202 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19203 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19204 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19205 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19206 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19207 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19208 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19209 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19210 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19211 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19212 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
19213 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19214
19215 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19216 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19217 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19218 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19219 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19220 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19221 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19222 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19223 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19224 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19225 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19226 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19227 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19228 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19229 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19230 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
19231 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19232
19233 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19234 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19235 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19236 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19237 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19238 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19239 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19240 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19241 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19242 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19243 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19244 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19245 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19246 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19247 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19248 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
19249 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19250
19251 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19252 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19253 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19254 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19255 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19256 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19257 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19258 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19259 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19260 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19261 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19262 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19263 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19264 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19265 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19266 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
19267 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19268
19269 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19270 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19271 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19272 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19273 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19274 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19275 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19276 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19277 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19278 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19279 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19280 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19281 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19282 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19283 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19284 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
19285 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19286
19287 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19288 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19289 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19290 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19291 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19292 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19293 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19294 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19295 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19296 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19297 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19298 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19299 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19300 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19301 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19302 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
19303 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19304
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019305 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19306 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19307 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19308 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19309 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19310 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19311 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19312 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19313 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19314 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19315 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19316 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19317 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19318 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19319 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19320 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
19321 {"HDMI", NULL, "HDMI Mixer"},
19322
19323 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19324 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19325 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19326 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19327 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19328 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19329 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19330 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19331 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19332 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19333 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19334 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19335 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19336 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19337 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19338 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
19339 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19340
Karthikeyan Mani57550082018-05-03 18:43:58 -070019341 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19342 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19343 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19344 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19345 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19346 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19347 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19348 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19349 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19350 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19351 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19352 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19353 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19354 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19355 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19356 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
19357 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19358
Ralf Herzc8701f72018-06-20 11:37:35 +020019359 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19360 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19361 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19362 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19363 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19364 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19365 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19366 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19367 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19368 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19369 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19370 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19371 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19372 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19373 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19374 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19375 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19376
19377 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19378 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19379 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19380 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19381 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19382 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19383 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19384 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19385 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19386 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19387 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19388 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19389 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19390 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19391 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19392 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19393 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019394
19395 /* incall */
19396 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19397 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19398 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19399 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19400 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19401 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19402 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19403 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19404 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19405 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19406 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19407 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19408 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19409 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19410 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19411
19412 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19413 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19414 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19415 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19416 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19417 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19418 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19419 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19420 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19421 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19422 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19423 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19424 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19425 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19426 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19427 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19428 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19429
19430 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19431 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19432 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19433 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19434 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19435 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19436 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19437 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19438 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19439 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19440 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19441 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19442 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19443 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19444 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19445 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19446 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19447
19448 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19449 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19450 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19451 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19452 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19453 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19454 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19455 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19456 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19457 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19458 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19459 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19460 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19461 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19462 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19463 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19464 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19465
19466 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19467 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19468 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19469 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19470 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19471 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19472 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19473 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19474 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19475 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19476 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19477 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19478 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19479 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19480 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19481 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019482 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19483 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019484 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19485 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19486 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19487 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19488 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19489 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019490 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19491 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019492 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019493 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019494 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19495 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19496 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19497 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19498 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19499 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019500 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019501 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19502 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19503 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019504 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19505 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19506 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019507 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019508 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019509 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19510 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019511 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019512 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19513 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19514
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019515 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19516 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19517 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19518 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19519 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19520 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19521 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19522 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19523 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19524 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19525 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19526 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19527 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19528 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19529 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19530 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19531 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
19532
19533 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19534 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19535 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19536 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19537 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19538 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19539 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19540 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19541 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19542 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19543 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19544 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19545 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19546 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19547 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19548 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
19549
19550 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19551 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19552 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19553 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19554 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19555 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19556 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19557 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19558 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19559 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19560 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19561 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19562 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19563 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19564 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
19565
19566 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19567 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19568 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19569 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19570 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19571 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19572 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19573 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19574 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19575 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19576 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19577 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19578 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19579 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19580 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
19581
19582 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19583 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
19584
19585 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19586 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19587
19588 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19589 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19590 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19591 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19592 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19593 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19594 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19595 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19596 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19597 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19598 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19599 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19600 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19601 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19602 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19603 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
19604
19605 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19606 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19607 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19608 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19609 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19610 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19611 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19612 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19613 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19614 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19615 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19616 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19617 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19618 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19619 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19620 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
19621
19622 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19623 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19624 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19625 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19626 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19627 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19628 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19629 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19630 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19631 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19632 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19633 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19634 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19635 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19636 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19637 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
19638
19639 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19640 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19641 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19642 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19643 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19644 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19645 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19646 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19647 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19648 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19649 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19650 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19651 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19652 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19653 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19654 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19655 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19656 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
19657
19658 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19659 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19660 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19661 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19662 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19663 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19664 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19665 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19666 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19667 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19668 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19669 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19670 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19671 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19672 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19673 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019674 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019675 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
19676
19677 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19678 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19679 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19680 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19681 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19682 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19683 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19684 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19685 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19686 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19687 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19688 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19689 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19690 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19691 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19692 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019693 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019694 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
19695
19696 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19697 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19698 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19699 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19700 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19701 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19702 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19703 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19704 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19705 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19706 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19707 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19708 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19709 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19710 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19711 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019712 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019713 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
19714
19715 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19716 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19717 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19718 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19719 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19720 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19721 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19722 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19723 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19724 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19725 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19726 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19727 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19728 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19729 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19730 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019731 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019732 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
19733
19734 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19735 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19736 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19737 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19738 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19739 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19740 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19741 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19742 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19743 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19744 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19745 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19746 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19747 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19748 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19749 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19750 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
19751
19752 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19753 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19754 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19755 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19756 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19757 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19758 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19759 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19760 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19761 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19762 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19763 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19764 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19765 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19766 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19767 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019768 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019769 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
19770
19771 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19772 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19773 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19774 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19775 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19776 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19777 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19778 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19779 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19780 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19781 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19782 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19783 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19784 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19785 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19786 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019787 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019788 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
19789
19790 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19791 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19792 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19793 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19794 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19795 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19796 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19797 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19798 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19799 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19800 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19801 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19802 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19803 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19804 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19805 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019806 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019807 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
19808
19809 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19810 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19811 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19812 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19813 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19814 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19815 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19816 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19817 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19818 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19819 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19820 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19821 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19822 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19823 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19824 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019825 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019826 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
19827
19828 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19829 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19830 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19831 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19832 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19833 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19834 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19835 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19836 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19837 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19838 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19839 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19840 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19841 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19842 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19843 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19844 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
19845
19846 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19847 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19848 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19849 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19850 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19851 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19852 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19853 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19854 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19855 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19856 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19857 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19858 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19859 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19860 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19861 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019862 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019863 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
19864
19865 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19866 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19867 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19868 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19869 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19870 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19871 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19872 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19873 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19874 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19875 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19876 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19877 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19878 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19879 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19880 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19881 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
19882
19883 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19884 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19885 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19886 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19887 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19888 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19889 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19890 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19891 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19892 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19893 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19894 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19895 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19896 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19897 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19898 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019899 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019900 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
19901
19902 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19903 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19904 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19905 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19906 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19907 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19908 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19909 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19910 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19911 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19912 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19913 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19914 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19915 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19916 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19917 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019918 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019919 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
19920
19921 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19922 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19923 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19924 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19925 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19926 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19927 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19928 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19929 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19930 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19931 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19932 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19933 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19934 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19935 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19936 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019937 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019938 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
19939
19940 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19941 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19942 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19943 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19944 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19945 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19946 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19947 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19948 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19949 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19950 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19951 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19952 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19953 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19954 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19955 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019956 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019957 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
19958
19959 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19960 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19961 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19962 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19963 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19964 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19965 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19966 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19967 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19968 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19969 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19970 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19971 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19972 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19973 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19974 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19975 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070019976 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019977 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
19978
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019979 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19980 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19981 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19982 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19983 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19984 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19985 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19986 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19987 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19988 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19989 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19990 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19991 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19992 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19993 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19994 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
19995 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
19996
19997 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19998 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19999 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20000 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20001 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20002 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20003 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20004 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20005 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20006 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20007 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20008 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20009 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20010 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20011 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20012 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20013 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020014 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020015 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20016
20017 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20018 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20019 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20020 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20021 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20022 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20023 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20024 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20025 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20026 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20027 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20028 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20029 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20030 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20031 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20032 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20033 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020034 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020035 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20036
20037 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20038 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20039 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20040 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20041 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20042 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20043 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20044 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20045 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20046 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20047 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20048 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20049 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20050 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20051 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20052 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20053 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020054 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020055 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20056
Rohit Kumara5077932017-09-10 22:05:05 +053020057 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20058 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20059 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20060 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20061 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20062 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20063 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20064 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20065 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20066 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20067 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20068 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20069 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20070 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20071 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20072 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20073 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020074 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020075 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20076
20077 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20078 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20079 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20080 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20081 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20082 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20083 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20084 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20085 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20086 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20087 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20088 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20089 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20090 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20091 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20092 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20093 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20094
20095 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20096 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20097 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20098 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20099 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20100 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20101 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20102 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20103 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20104 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20105 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20106 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20107 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20108 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20109 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20110 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20111 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020112 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020113 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20114
20115 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20116 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20117 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20118 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20119 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20120 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20121 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20122 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20123 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20124 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20125 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20126 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20127 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20128 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20129 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20130 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20131 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020132 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020133 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20134
20135 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20136 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20137 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20138 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20139 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20140 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20141 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20142 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20143 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20144 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20145 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20146 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20147 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20148 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20149 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20150 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20151 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020152 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020153 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20154
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020155 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20156 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20157 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20158 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20159 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020160 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020161 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020162 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20163 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20164 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20165 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20166 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20167 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20168 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20169 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20170 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20171 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20172 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20173 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20174 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20175 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20176 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020177 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020178 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20179 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20180 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020181 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020182 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20183 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020184 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20185 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20186 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020187 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020188 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20189 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20190 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020191 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020192 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020193 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20194 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20195 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020196 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20197 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20198 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20199 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20200 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20201 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20202 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20203 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20204 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20205 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20206 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020207 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020208 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20209 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20210 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020211 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020212 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020213 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20214 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20215 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020216 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020217 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020218 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20219 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20220 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20221 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20222 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020223 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20224 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20225 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20226 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020227 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020228
20229 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20230 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20231 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20232 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20233 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20234 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20235 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20236 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20237 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20238 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20239 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20240 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20241 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20242 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20243 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20244 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020245 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20246 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20247 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20248 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020249 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20250 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20251 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20252 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20253 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020254 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20255 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20256 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20257 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20258 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20259 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020260 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20261 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020262
20263 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20264 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20265 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20266 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20267 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20268 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20269 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20270 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20271 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20272 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20273 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20274 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20275 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20276 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20277 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20278 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020279 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20280 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20281 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20282 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020283 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20284 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20285 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20286 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20287 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020288 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20289 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20290 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20291 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20292 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20293 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020294 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20295 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020296
20297 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20298 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20299 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20300 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20301 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20302 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20303 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20304 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20305 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20306 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20307 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20308 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20309 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20310 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20311 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20312 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020313 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20314 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20315 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20316 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020317 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20318 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20319 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20320 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20321 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020322 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20323 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20324 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20325 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20326 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20327 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020328 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20329 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020330
20331 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20332 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20333 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20334 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20335 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20336 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20337 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20338 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20339 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20340 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20341 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20342 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20343 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20344 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20345 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20346 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020347 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20348 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20349 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20350 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020351 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20352 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20353 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20354 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20355 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020356 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20357 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20358 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20359 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20360 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20361 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020362 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20363 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020364
20365 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20366 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20367 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20368 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20369 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20370 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20371 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20372 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20373 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20374 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20375 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20376 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20377 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20378 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20379 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20380 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020381 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20382 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20383 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20384 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020385 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20386 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20387 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20388 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20389 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020390 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20391 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20392 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20393 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20394 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20395 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020396 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20397 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020398
20399 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20400 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20401 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20402 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20403 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20404 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20405 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20406 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20407 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20408 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20409 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20410 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20411 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20412 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20413 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20414 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020415 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20416 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20417 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20418 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020419 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20420 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20421 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20422 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20423 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020424 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20425 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20426 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20427 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20428 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20429 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020430 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20431 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020432
20433 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20434 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20435 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20436 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20437 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20438 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20439 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20440 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20441 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20442 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20443 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20444 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20445 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20446 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20447 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20448 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020449 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20450 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20451 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20452 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020453 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20454 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20455 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20456 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20457 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020458 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20459 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20460 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20461 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20462 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20463 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020464 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20465 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020466
20467 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20468 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20469 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20470 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20471 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20472 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20473 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20474 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020475 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20476 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20477 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20478 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020479 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20480 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20481 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20482 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20483 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020484 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20485 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20486 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20487 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20488 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20489 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020490 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20491 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020492
Laxminath Kasam38070be2017-08-17 18:21:59 +053020493 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20494 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20495 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20496 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20497 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20498 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20499 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20500 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020501 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20502 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20503 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20504 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20505 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20506 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20507
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020508 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20509 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20510 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20511 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020512 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020513 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20514 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20515 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20516 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20517 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20518 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20519 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20520 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20521 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20522 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20523 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20524 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20525 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20526 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20527 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20528 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020529 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20530 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20531 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20532 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020533 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20534 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20535 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20536 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20537 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020538 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20539 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20540 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20541 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20542 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20543 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020544 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20545 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020546
Derek Chen07c6d1c2018-07-05 10:39:25 -070020547 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20548 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20549 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20550 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20551 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20552 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20553 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20554 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20555 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20556 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20557 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20558 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20559 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20560 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20561 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20562 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20563 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20564 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20565 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20566 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20567 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20568 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053020569 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20570 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20571 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20572 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20573 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
20574 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20575 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20576 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20577 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20578 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20579 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20580 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20581 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020582
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020583 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20584 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20585 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20586 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20587 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
20588 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020589 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020590
Asish Bhattacharya34504582017-08-08 12:55:01 +053020591 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20592 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20593 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20594 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20595 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20596 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20597 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20598 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20599 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20600 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20601 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20602 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20603 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20604 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20605 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20606 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
20607 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020608 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20609 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20610 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20611 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20612 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020613 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20614 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20615 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20616 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20617 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20618 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020619 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20620 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020621
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020622 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20623 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20624 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20625 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20626 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20627 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20628
20629 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20630 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20631 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20632 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20633 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20634 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20635
20636 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20637 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20638 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20639 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20640 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20641 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20642
20643 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20644 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20645 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20646 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20647 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20648 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20649
20650 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20651 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20652 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20653 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20654 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20655 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20656
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020657 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20658 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20659 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20660 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20661 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20662 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20663 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20664 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20665 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20666 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20667 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20668 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20669 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20670 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20671 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20672 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20673 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20674 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
20675
20676 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20677 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20678 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20679 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20680 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20681 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20682 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20683 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20684 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20685 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20686 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20687 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20688 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20689 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20690 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20691 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20692 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
20693 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
20694
20695 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20696 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20697 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20698 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20699 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20700 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20701 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20702 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20703 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20704 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20705 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20706 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20707 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20708 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20709 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20710 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20711 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
20712
20713 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20714 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20715 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20716 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20717 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20718 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20719 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20720 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20721 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20722 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20723 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20724 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20725 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20726 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20727 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20728 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20729 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
20730
20731 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20732 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20733 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020734 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020735 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20736 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20737 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020738 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20739 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020740 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
20741 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020742 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020743 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20744 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020745 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020746 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20747 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20748 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020749 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20750 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020751 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20752 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20753 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20754
20755 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
20756 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
20757 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020758 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020759 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
20760 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
20761 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020762 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
20763 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020764 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
20765 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020766 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020767 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
20768 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20769 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
20770 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
20771 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
20772 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
20773 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
20774 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
20775 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020776 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020777 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020778 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
20779 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
20780 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
20781 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020782 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020783 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
20784 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020785
20786 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20787 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20788 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20789 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20790 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20791 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20792 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20793 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20794 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20795 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20796 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20797 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20798 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20799 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20800 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20801 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020802 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020803 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
20804
20805 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20806 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20807 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20808 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20809 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20810 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20811 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20812 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20813 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20814 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20815 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20816 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20817 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20818 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20819 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20820 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020821 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020822 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
20823
20824 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20825 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20826 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20827 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20828 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20829 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20830 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20831 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20832 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20833 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20834 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20835 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20836 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20837 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20838 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20839 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20840 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
20841
20842 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20843 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20844 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20845 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20846 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20847 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20848 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20849 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20850 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20851 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20852 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20853 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20854 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20855 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20856 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20857 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20858 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
20859
Rohit Kumara5077932017-09-10 22:05:05 +053020860 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20861 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20862 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20863 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20864 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20865 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20866 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20867 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20868 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20869 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20870 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20871 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20872 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20873 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20874 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20875 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20876 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
20877
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020878 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20879 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20880 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20881 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20882 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20883 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
20884
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020885 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
20886 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20887 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20888 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
20889
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020890 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
20891 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20892 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20893 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20894 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20895 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
20896
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020897 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
20898 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020899 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20900 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20901 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20902 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
20903
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020904 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
20905 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020906 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20907 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20908 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20909 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
20910
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020911 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20912 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020913 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20914 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20915 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20916 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
20917
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020918 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
20919 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080020920 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20921 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20922 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20923 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
20924
Karthikeyan Mani57550082018-05-03 18:43:58 -070020925 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
20926 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20927 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
20928 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20929 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20930 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
20931
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020932 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
20933 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20934 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20935 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20936 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020937 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
20938
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020939 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20940 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20941 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20942 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20943 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20944 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
20945
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020946 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20947 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020948 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20949 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20950 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20951 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
20952
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020953 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20954 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020955 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20956 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20957 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20958 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
20959
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020960 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20961 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020962 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20963 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20964 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20965 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
20966
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020967 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20968 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020969 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20970 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20971 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20972 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
20973
Rohit Kumara5077932017-09-10 22:05:05 +053020974 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
20975 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053020976 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20977 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20978 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20979 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
20980
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020981 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
20982 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20983 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20984 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20985 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
20986 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
20987 {"HDMI", NULL, "HDMI_DL_HL"},
20988
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020989 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020990 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20991 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
20992 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080020993 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020994 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
20995
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020996 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020997 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
20998 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
20999 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21000 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21001 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21002
21003 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21004 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21005 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21006 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21007 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21008 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21009
21010 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21011 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21012 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21013 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21014 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21015 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21016
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021017 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021018 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21019 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21020 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21021 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21022 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021024 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021025 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21026 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21027 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21028 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21029
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021030 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021031 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21032 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21033 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21034 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21035
21036 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21037 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21038
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021039 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21040 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21041 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21042
21043 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21044 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21045 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21046
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021047 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21048 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21049 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21050 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021051 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021052 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021053 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021054 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021055 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21056 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21057
21058 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21059 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21060 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21061 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21062 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21063 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21064 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21065 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21066 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21067 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21068
21069 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21070 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21071 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21072 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21073
21074 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21075 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21076 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21077 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21078
21079 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21080 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21081 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21082 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21083
21084 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21085 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21086 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21087 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21088
21089 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21090 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21091 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21092 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21093
21094 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21095 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21096 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21097 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21098
21099 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21100 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21101 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21102 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21103
Laxminath Kasam38070be2017-08-17 18:21:59 +053021104 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21105 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21106 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21107 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21108 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21109 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21110 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21111 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21112 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21113 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021114
21115 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21116 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21117 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21118 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21119
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021120 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21121 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21122 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21123 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21124
21125 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21126 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21127 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21128 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21129
21130 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21131 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21132 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21133 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21134
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021135 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21136 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21137 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21138 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21139
21140 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21141 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21142 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21143 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021144
21145 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21146 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21147 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21148 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21149 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21150 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21151 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21152 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21153
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021154 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21155 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21156 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21157 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21158 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21159 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21160 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21161 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021162 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021163 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021164 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21165 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21166 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021167 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21168 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021169
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021170 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21171 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21172 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21173 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21174 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21175 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21176 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21177 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21178 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21179 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21180 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21181 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21182 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21183 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21184 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021185 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021186 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021187 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21188 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21189 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21190 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21191 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21192 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021193 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21194
21195 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21196 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21197 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21198 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21199 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21200 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21201 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21202 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21203 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21204 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21205 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21206 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21207 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21208 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21209 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021210 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021211 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21212 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21213 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21214 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21215 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21216 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021217 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21218
21219 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21220 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21221 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21222 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21223 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21224 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21225 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21226 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21227 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21228 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21229 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21230 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21231 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21232 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021233 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021234 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21235 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21236
21237 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21238 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21239 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21240 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21241 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21242 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21243 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21244 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21245 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21246 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21247 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21248 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21249 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21250 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21251 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021252 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21253 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21254 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021255 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21256 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21257 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021258 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21259 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21260 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21261 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21262 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21263 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21264 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21265 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021266 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21267 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021268 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021269 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21270
21271 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21272 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21273 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21274 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21275 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21276 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21277 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21278 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021279 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21280 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021281 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021282 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21283
21284
21285 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21286 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21287 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21288 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21289 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21290 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21291 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21292 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021293 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21294 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021295 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021296 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21297
21298
21299 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21300 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21301 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21302 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21303 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21304 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21305 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21306 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021307 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21308 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021309 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021310 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21311
21312 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21313 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21314 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21315 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21316 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21317 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21318 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21319 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021320 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21321 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021322 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021323 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21324
21325 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21326 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21327 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21328 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21329 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21330 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021331 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21332 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021333 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021334 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21335
21336 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21337 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21338 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21339 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21340 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21341 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021342 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21343 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021344 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021345 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21346
21347 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21348 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21349 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21350 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21351 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21352 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021353 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21354 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021355 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021356 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21357
21358
21359 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21360 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21361 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21362 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21363 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21364 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21365 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21366 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21367 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21368 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21369 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021370 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021371 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21372 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21373 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21374 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21375 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21376 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21377
21378 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21379 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21380 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21381 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21382 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21383 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21384 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21385 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21386 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21387 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21388 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21389 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021390 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21391 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021392 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021393 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021394 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021395 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21396 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21397 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21398 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21399
21400 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21401 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21402 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21403 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21404 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21405 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21406 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21407 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21408 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21409 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21410 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21411
21412 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21413 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021414 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21415 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021416 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21417 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21418 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21419 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21420 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21421 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21422 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21423 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21424 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21425 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21426
21427 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21428 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21429 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21430 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21431 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21432 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21433 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21434 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21435 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21436 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21437 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21438 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21439 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21440 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21441 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21442 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
21443 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21444 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21445 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21446 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
21447 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21448 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21449 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21450 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21451 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21452 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21453 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21454 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21455 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21456 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21457 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21458 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021459 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21460 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21461 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21462 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21463 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21464 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21465 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21466 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021467
21468 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21469 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21470 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21471 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21472 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21473 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21474 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21475 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21476 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21477 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21478 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21479 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21480 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21481 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21482 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21483 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021484 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21485 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21486 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21487 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021488 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
21489
21490 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21491 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21492 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21493 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21494 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21495 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21496 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21497 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21498 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21499 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21500 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21501 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21502 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21503 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21504 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21505 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021506 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21507 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21508 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21509 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021510 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
21511
21512 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21513 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21514 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21515 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21516 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21517 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21518 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21519 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21520 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21521 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21522 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21523 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21524 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21525 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21526 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21527 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021528 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21529 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21530 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21531 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021532 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
21533
21534 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21535 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21536 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21537 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21538 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21539 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21540 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21541 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21542 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21543 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21544 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21545 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21546 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21547 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21548 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21549 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021550 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21551 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21552 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21553 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021554 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
21555
21556 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21557 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21558 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21559 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21560 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21561 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21562 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21563 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21564 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21565 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21566 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21567 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21568 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21569 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21570 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21571 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021572 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21573 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21574 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21575 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021576 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
21577
21578 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21579 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21580 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21581 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21582 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21583 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21584 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21585 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21586 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21587 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21588 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21589 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21590 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21591 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21592 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21593 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021594 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21595 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21596 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21597 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021598 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
21599
21600 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21601 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21602 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21603 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21604 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21605 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21606 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21607 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21608 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21609 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21610 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21611 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21612 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21613 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21614 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21615 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021616 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21617 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21618 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21619 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021620 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
21621
21622 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21623 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21624 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21625 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21626 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21627 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21628 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21629 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21630 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21631 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21632 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21633 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21634 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21635 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21636 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21637 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021638 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21639 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21640 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21641 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021642 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
21643
21644 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21645 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21646 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21647 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21648 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21649 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21650 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21651 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21652 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21653 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21654 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21655 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21656 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21657 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21658 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21659 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021660 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21661 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21662 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21663 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021664 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
21665
21666 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21667 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21668 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21669 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21670 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21671 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21672 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21673 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21674 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21675 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21676 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21677 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21678 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21679 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21680 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21681 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021682 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21683 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21684 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21685 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021686 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
21687
21688 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21689 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21690 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21691 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21692 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21693 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21694 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21695 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21696 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21697 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21698 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21699 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21700 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21701 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21702 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21703 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021704 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21705 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21706 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21707 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021708 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
21709
21710 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21711 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21712 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21713 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21714 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21715 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21716 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21717 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21718 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21719 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21720 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21721 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21722 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21723 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21724 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21725 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021726 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21727 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21728 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21729 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021730 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
21731
21732 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21733 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21734 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21735 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21736 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21737 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21738 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21739 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21740 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21741 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21742 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21743 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21744 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21745 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21746 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21747 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021748 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21749 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21750 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21751 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021752 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
21753
21754 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21755 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21756 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21757 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21758 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21759 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21760 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21761 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21762 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21763 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21764 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21765 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21766 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21767 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21768 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21769 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021770 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21771 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21772 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21773 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021774 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
21775
21776 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21777 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21778 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21779 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21780 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21781 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21782 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21783 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21784 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21785 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21786 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21787 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21788 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21789 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21790 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21791 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021792 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21793 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21794 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21795 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021796 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
21797
21798 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21799 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21800 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21801 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21802 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21803 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21804 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21805 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21806 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21807 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21808 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21809 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21810 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21811 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21812 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21813 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021814 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21815 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21816 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21817 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021818 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
21819
Rohit Kumara5077932017-09-10 22:05:05 +053021820 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21821 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21822 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21823 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21824 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21825 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21826 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21827 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21828 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21829 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21830 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21831 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21832 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21833 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21834 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21835 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21836 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21837 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21838 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21839 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021840 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021841
21842 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21843 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21844 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21845 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21846 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21847 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21848 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21849 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21850 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21851 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21852 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21853 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21854 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21855 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21856 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21857 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21858 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21859 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21860 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21861 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021862 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021863
21864 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21865 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21866 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21867 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21868 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21869 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21870 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21871 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21872 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21873 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21874 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21875 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21876 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21877 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21878 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21879 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21880 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21881 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21882 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21883 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021884 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021885
21886 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21887 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21888 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21889 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21890 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21891 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21892 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21893 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21894 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21895 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21896 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21897 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21898 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21899 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21900 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21901 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21902 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21903 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21904 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21905 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053021906 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053021907
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021908 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21909 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21910 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21911 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021912 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021913 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21914 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21915 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21916 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21917 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21918 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
21919
21920 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21921 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21922 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21923 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021924 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021925 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
21926 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21927 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21928 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21929 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21930 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
21931
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021932 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21933 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21934 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080021935 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21936 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21937
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053021938
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021939 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21940 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21941 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21942 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
21943 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
21944 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21945 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21946 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21947 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021948 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021949 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
21950 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21951 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21952 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21953 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021954 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021955 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21956 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
21957 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21958 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21959 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
21960 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21961 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
21962 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
21963 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
21964 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
21965
21966
21967 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21968 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21969 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21970 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21971 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021972 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021973 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
21974
21975 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21976 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21977 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021978 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021979 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
21980
21981 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21982 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
21983 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21984 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
21985
21986 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21987 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
21988 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21989 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
21990
Rohit Kumara5077932017-09-10 22:05:05 +053021991 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21992 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
21993 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21994 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
21995
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021996 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
21997 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
21998 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21999 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22000 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22001 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22002 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22003 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022004 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022005 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22006 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22007 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22008 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22009 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22010 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22011 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22012 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22013 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22014 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22015 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22016
22017 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22018 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22019 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22020 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22021 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22022 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22023 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22024 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22025 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22026 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22027 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22028 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22029
22030 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22031 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22032 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22033 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22034 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22035 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22036 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22037 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22038 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22039 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22040 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22041 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22042
kunleizdf5a00a2017-11-27 15:27:36 +080022043 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22044 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022045 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022046
22047 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22048 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022049 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022050
22051 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22052 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022053 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22054
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022055 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22056 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022057 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22058 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22059 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22060 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22061
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022062 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22063 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022064 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22065 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22066 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22067 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22068
22069 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22070 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22071 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22072 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22073 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22074 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22075 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22076 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22077 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22078 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22079 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22080 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22081 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22082
22083 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22084 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22085 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22086 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22087 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22088 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22089 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22090 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22091 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22092 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22093 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22094 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22095 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22096
22097 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22098 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22099
22100 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22101 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22102
Karthikeyan Mani57550082018-05-03 18:43:58 -070022103 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22104 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22105
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022106 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22107 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22108
22109 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22110 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22111 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22112
22113 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22114 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22115 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22116 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022117 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022118 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22119 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22120 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22121 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022122 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022123 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22124
22125 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22126 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22127 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22128 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022129 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022130 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22131 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22132 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022133 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022134 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22135
22136 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22137 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22138 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22139 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022140 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022141 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22142 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22143 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22144
22145 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22146 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22147 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22148 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022149 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022150 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22151 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22152 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22153 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22154 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22155
Rohit Kumara5077932017-09-10 22:05:05 +053022156 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22157 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22158 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22159 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22160 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22161 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22162 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22163 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22164
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022165 /* Backend Enablement */
22166
22167 {"BE_OUT", NULL, "PRI_I2S_RX"},
22168 {"BE_OUT", NULL, "SEC_I2S_RX"},
22169 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22170 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22171 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22172 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22173 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22174 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22175 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22176 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22177 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
22178 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22179 {"BE_OUT", NULL, "HDMI"},
22180 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022181 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022182 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22183 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022184 {"BE_OUT", NULL, "MI2S_RX"},
22185 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22186 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22187 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22188 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22189 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22190 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22191 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22192 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022193 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22194 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22195 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022196 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22197 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22198 {"BE_OUT", NULL, "INT_FM_RX"},
22199 {"BE_OUT", NULL, "PCM_RX"},
22200 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22201 {"BE_OUT", NULL, "AUX_PCM_RX"},
22202 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22203 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22204 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022205 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022206 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22207 {"BE_OUT", NULL, "INT_FM_RX"},
22208 {"BE_OUT", NULL, "PCM_RX"},
22209 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22210 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22211 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22212 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22213 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22214 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22215 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22216 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22217 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22218 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22219 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
22220 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22221 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22222 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22223 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22224 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22225 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22226 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22227 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22228 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022229 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22230 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22231 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22232 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022233 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22234 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022235 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22236 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22237 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22238 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22239 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22240 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22241 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22242 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022243
22244 {"PRI_I2S_TX", NULL, "BE_IN"},
22245 {"MI2S_TX", NULL, "BE_IN"},
22246 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22247 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22248 {"PRI_MI2S_TX", NULL, "BE_IN"},
22249 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022250 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022251 {"INT2_MI2S_TX", NULL, "BE_IN"},
22252 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022253 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022254 {"INT5_MI2S_TX", NULL, "BE_IN"},
22255 {"SEC_MI2S_TX", NULL, "BE_IN"},
22256 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22257 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22258 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22259 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22260 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22261 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22262 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22263 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22264 {"SLIMBUS_8_TX", NULL, "BE_IN" },
22265 {"USB_AUDIO_TX", NULL, "BE_IN" },
22266 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22267 {"INT_FM_TX", NULL, "BE_IN"},
22268 {"PCM_TX", NULL, "BE_IN"},
22269 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22270 {"BE_OUT", NULL, "STUB_RX"},
22271 {"STUB_TX", NULL, "BE_IN"},
22272 {"STUB_1_TX", NULL, "BE_IN"},
22273 {"BE_OUT", NULL, "AUX_PCM_RX"},
22274 {"AUX_PCM_TX", NULL, "BE_IN"},
22275 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22276 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22277 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022278 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022279 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22280 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22281 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22282 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022283 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22284 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022285 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22286 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22287 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22288 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22289 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022290 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22291 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022292 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22293 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22294 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22295 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22296 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22297 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22298 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22299 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22300 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22301 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22302 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22303 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22304 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22305 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22306 {"TERT_TDM_TX_3", NULL, "BE_IN"},
22307 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22308 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22309 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22310 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022311 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22312 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22313 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22314 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022315 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22316 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22317 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22318 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22319 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022320 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22321 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22322 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22323 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22324 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22325 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022326 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22327 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022328};
22329
22330static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22331 struct snd_pcm_hw_params *params)
22332{
22333 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22334 unsigned int be_id = rtd->dai_link->id;
22335
22336 if (be_id >= MSM_BACKEND_DAI_MAX) {
22337 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22338 return -EINVAL;
22339 }
22340
22341 mutex_lock(&routing_lock);
22342 msm_bedais[be_id].sample_rate = params_rate(params);
22343 msm_bedais[be_id].channel = params_channels(params);
22344 msm_bedais[be_id].format = params_format(params);
22345 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22346 __func__, msm_bedais[be_id].sample_rate,
22347 msm_bedais[be_id].format, be_id);
22348 mutex_unlock(&routing_lock);
22349 return 0;
22350}
22351
22352static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22353{
22354 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22355 unsigned int be_id = rtd->dai_link->id;
22356 int i, session_type, path_type, topology;
22357 struct msm_pcm_routing_bdai_data *bedai;
22358 struct msm_pcm_routing_fdai_data *fdai;
22359
22360 pr_debug("%s: substream->pcm->id:%s\n",
22361 __func__, substream->pcm->id);
22362
22363 if (be_id >= MSM_BACKEND_DAI_MAX) {
22364 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22365 return -EINVAL;
22366 }
22367
22368 bedai = &msm_bedais[be_id];
22369 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22370 0 : 1);
22371 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22372 path_type = ADM_PATH_PLAYBACK;
22373 else
22374 path_type = ADM_PATH_LIVE_REC;
22375
22376 mutex_lock(&routing_lock);
22377 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22378 if (!is_mm_lsm_fe_id(i))
22379 continue;
22380 fdai = &fe_dai_map[i][session_type];
22381 if (fdai->strm_id != INVALID_SESSION) {
22382 int idx;
22383 int port_id;
22384 unsigned long copp =
22385 session_copp_map[i][session_type][be_id];
22386 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22387 if (test_bit(idx, &copp))
22388 break;
22389 fdai->be_srate = bedai->sample_rate;
22390 port_id = bedai->port_id;
22391 topology = adm_get_topology_for_port_copp_idx(port_id,
22392 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022393 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022394 adm_close(bedai->port_id, fdai->perf_mode, idx);
22395 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22396 __func__, copp, i, session_type, be_id,
22397 topology);
22398 clear_bit(idx,
22399 &session_copp_map[i][session_type][be_id]);
22400 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022401 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022402 msm_pcm_routing_deinit_pp(bedai->port_id,
22403 topology);
22404 }
22405 }
22406
22407 bedai->active = 0;
22408 bedai->sample_rate = 0;
22409 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022410 mutex_unlock(&routing_lock);
22411
22412 return 0;
22413}
22414
22415static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22416{
22417 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22418 unsigned int be_id = rtd->dai_link->id;
22419 int i, path_type, topology;
22420 int session_type = INVALID_SESSION;
22421 struct msm_pcm_routing_bdai_data *bedai;
22422 u32 channels, sample_rate;
22423 uint16_t bits_per_sample = 16, voc_path_type;
22424 struct msm_pcm_routing_fdai_data *fdai;
22425 u32 session_id;
22426 struct media_format_info voc_be_media_format;
22427 bool is_lsm;
22428
22429 pr_debug("%s: substream->pcm->id:%s\n",
22430 __func__, substream->pcm->id);
22431
22432 if (be_id >= MSM_BACKEND_DAI_MAX) {
22433 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22434 return -EINVAL;
22435 }
22436
22437 bedai = &msm_bedais[be_id];
22438
22439 mutex_lock(&routing_lock);
22440 if (bedai->active == 1)
22441 goto done; /* Ignore prepare if back-end already active */
22442
22443 /* AFE port is not active at this point. However, still
22444 * go ahead setting active flag under the notion that
22445 * QDSP6 is able to handle ADM starting before AFE port
22446 * is started.
22447 */
22448 bedai->active = 1;
22449
22450 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22451 if (!(is_mm_lsm_fe_id(i) &&
22452 route_check_fe_id_adm_support(i)))
22453 continue;
22454
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022455 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
22456 SESSION_TYPE_RX : SESSION_TYPE_TX;
22457 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022458 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022459 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022460 path_type = ADM_PATH_COMPRESSED_RX;
22461 else
22462 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022463 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022464 if ((fdai->passthr_mode != LEGACY_PCM) &&
22465 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020022466 path_type = ADM_PATH_COMPRESSED_TX;
22467 else
22468 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022469 }
22470
22471 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
22472 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022473 if (fdai->strm_id != INVALID_SESSION) {
22474 int app_type, app_type_idx, copp_idx, acdb_dev_id;
22475
22476 if (session_type == SESSION_TYPE_TX &&
22477 fdai->be_srate &&
22478 (fdai->be_srate != bedai->sample_rate)) {
22479 pr_debug("%s: flush strm %d diff BE rates\n",
22480 __func__,
22481 fdai->strm_id);
22482
22483 if (fdai->event_info.event_func)
22484 fdai->event_info.event_func(
22485 MSM_PCM_RT_EVT_BUF_RECFG,
22486 fdai->event_info.priv_data);
22487 fdai->be_srate = 0; /* might not need it */
22488 }
22489 bits_per_sample = msm_routing_get_bit_width(
22490 bedai->format);
22491
22492 app_type =
22493 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
22494 if (app_type && is_lsm) {
22495 app_type_idx =
22496 msm_pcm_routing_get_lsm_app_type_idx(app_type);
22497 sample_rate =
22498 fe_dai_app_type_cfg[i][session_type][be_id]
22499 .sample_rate;
22500 bits_per_sample =
22501 lsm_app_type_cfg[app_type_idx].bit_width;
22502 } else if (app_type) {
22503 app_type_idx =
22504 msm_pcm_routing_get_app_type_idx(app_type);
22505 sample_rate =
22506 fe_dai_app_type_cfg[i][session_type]
22507 [be_id].sample_rate;
22508 bits_per_sample =
22509 app_type_cfg[app_type_idx].bit_width;
22510 } else
22511 sample_rate = bedai->sample_rate;
22512 /*
22513 * check if ADM needs to be configured with different
22514 * channel mapping than backend
22515 */
22516 if (!bedai->adm_override_ch)
22517 channels = bedai->channel;
22518 else
22519 channels = bedai->adm_override_ch;
22520 acdb_dev_id =
22521 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
22522 topology = msm_routing_get_adm_topology(i, session_type,
22523 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020022524
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022525 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
22526 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
22527 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020022528 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
22529
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022530 copp_idx = adm_open(bedai->port_id, path_type,
22531 sample_rate, channels, topology,
22532 fdai->perf_mode, bits_per_sample,
22533 app_type, acdb_dev_id);
22534 if ((copp_idx < 0) ||
22535 (copp_idx >= MAX_COPPS_PER_PORT)) {
22536 pr_err("%s: adm open failed\n", __func__);
22537 mutex_unlock(&routing_lock);
22538 return -EINVAL;
22539 }
22540 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
22541 __func__, i, session_type, be_id);
22542 set_bit(copp_idx,
22543 &session_copp_map[i][session_type][be_id]);
22544
22545 if (msm_is_resample_needed(
22546 sample_rate,
22547 bedai->sample_rate))
22548 adm_copp_mfc_cfg(
22549 bedai->port_id, copp_idx,
22550 bedai->sample_rate);
22551
22552 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022553 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022554 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022555 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022556 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
22557 topology, channels);
22558 }
22559 }
22560
22561 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22562 session_id = msm_pcm_routing_get_voc_sessionid(i);
22563 if (session_id) {
22564 pr_debug("%s voice session_id: 0x%x\n", __func__,
22565 session_id);
22566
22567 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22568 voc_path_type = RX_PATH;
22569 else
22570 voc_path_type = TX_PATH;
22571
22572 voc_set_route_flag(session_id, voc_path_type, 1);
22573
22574 memset(&voc_be_media_format, 0,
22575 sizeof(struct media_format_info));
22576
22577 voc_be_media_format.port_id = bedai->port_id;
22578 voc_be_media_format.num_channels = bedai->channel;
22579 voc_be_media_format.sample_rate = bedai->sample_rate;
22580 voc_be_media_format.bits_per_sample = bedai->format;
22581 /* Defaulting this to 1 for voice call usecases */
22582 voc_be_media_format.channel_mapping[0] = 1;
22583
22584 voc_set_device_config(session_id, voc_path_type,
22585 &voc_be_media_format);
22586
22587 if (voc_get_route_flag(session_id, RX_PATH) &&
22588 voc_get_route_flag(session_id, TX_PATH))
22589 voc_enable_device(session_id);
22590 }
22591 }
22592
22593 /* Check if backend is an external ec ref port and set as needed */
22594 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
22595
22596 memset(&voc_be_media_format, 0,
22597 sizeof(struct media_format_info));
22598
22599 /* Get format info for ec ref port from msm_bedais[] */
22600 voc_be_media_format.port_id = bedai->port_id;
22601 voc_be_media_format.num_channels = bedai->channel;
22602 voc_be_media_format.bits_per_sample = bedai->format;
22603 voc_be_media_format.sample_rate = bedai->sample_rate;
22604 /* Defaulting this to 1 for voice call usecases */
22605 voc_be_media_format.channel_mapping[0] = 1;
22606 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
22607 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
22608 __func__, voc_be_media_format.port_id,
22609 voc_be_media_format.num_channels,
22610 voc_be_media_format.bits_per_sample,
22611 voc_be_media_format.sample_rate);
22612 }
22613
22614done:
22615 mutex_unlock(&routing_lock);
22616
22617 return 0;
22618}
22619
22620static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
22621 int fe_id)
22622{
22623 int index, topo_id, be_idx;
22624 unsigned long pp_config = 0;
22625 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022626 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022627 bool compr_passthr_mode = true;
22628
22629 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
22630
22631 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
22632 pr_err("%s: Device pp params on invalid port %d\n",
22633 __func__, port_id);
22634 return -EINVAL;
22635 }
22636
22637 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22638 if (port_id == msm_bedais[be_idx].port_id)
22639 break;
22640 }
22641
22642 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22643 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22644 return -EINVAL;
22645 }
22646
22647 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22648 if (msm_bedais_pp_params[index].port_id == port_id)
22649 break;
22650 }
22651 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22652 pr_err("%s: Invalid backend pp params index %d\n",
22653 __func__, index);
22654 return -EINVAL;
22655 }
22656
22657 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
22658 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
22659 pr_err("%s: Invalid passthrough topology 0x%x\n",
22660 __func__, topo_id);
22661 return -EINVAL;
22662 }
22663
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022664 session_type =
22665 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
22666 SESSION_TYPE_RX : SESSION_TYPE_TX;
22667
22668 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
22669 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022670 compr_passthr_mode = false;
22671
22672 pp_config = msm_bedais_pp_params[index].pp_params_config;
22673 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
22674 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22675 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
22676 mute_on = msm_bedais_pp_params[index].mute_on;
22677 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22678 adm_send_compressed_device_mute(port_id,
22679 copp_idx,
22680 mute_on);
22681 }
22682 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
22683 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22684 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
22685 &pp_config);
22686 latency = msm_bedais_pp_params[index].latency;
22687 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22688 adm_send_compressed_device_latency(port_id,
22689 copp_idx,
22690 latency);
22691 }
22692 return 0;
22693}
22694
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022695static uint32_t msm_routing_get_topology(size_t data_size, void *data)
22696{
22697 uint32_t topology = NULL_COPP_TOPOLOGY;
22698 void *cal_info = NULL;
22699 uint32_t size = 0;
22700
22701 /* Retrieve cal_info size from cal data*/
22702 size = data_size - sizeof(struct audio_cal_type_basic);
22703 cal_info = kzalloc(size, GFP_KERNEL);
22704
22705 if (!cal_info)
22706 goto done;
22707
22708 memcpy(cal_info,
22709 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
22710
22711 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
22712 kfree(cal_info);
22713 cal_info = NULL;
22714
22715done:
22716 pr_debug("%s: Using topology %d\n", __func__, topology);
22717
22718 return topology;
22719}
22720
22721static void msm_routing_load_topology(size_t data_size, void *data)
22722{
22723 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022724 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022725
22726 topology_id = msm_routing_get_topology(data_size, data);
22727 if (topology_id != NULL_COPP_TOPOLOGY)
22728 ret = q6core_load_unload_topo_modules(topology_id,
22729 CORE_LOAD_TOPOLOGY);
22730 if (ret < 0)
22731 pr_debug("%s %d load topology failed\n",
22732 __func__, topology_id);
22733
22734}
22735
22736static void msm_routing_unload_topology(uint32_t topology_id)
22737{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022738 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022739
22740 if (topology_id != NULL_COPP_TOPOLOGY)
22741 ret = q6core_load_unload_topo_modules(topology_id,
22742 CORE_UNLOAD_TOPOLOGY);
22743 if (ret < 0)
22744 pr_debug("%s %d unload topology failed\n",
22745 __func__, topology_id);
22746
22747}
22748
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022749static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22750 struct snd_ctl_elem_value *ucontrol)
22751{
22752 int pp_id = ucontrol->value.integer.value[0];
22753 int port_id = 0;
22754 int index, be_idx, i, topo_id, idx;
22755 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022756 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022757 bool compr_passthr_mode = true;
22758
22759 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
22760
22761 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
22762 port_id = msm_bedais[be_idx].port_id;
22763 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
22764 break;
22765 }
22766
22767 if (be_idx >= MSM_BACKEND_DAI_MAX) {
22768 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
22769 return -EINVAL;
22770 }
22771
22772 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
22773 if (msm_bedais_pp_params[index].port_id == port_id)
22774 break;
22775 }
22776 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
22777 pr_err("%s: Invalid pp params backend index %d\n",
22778 __func__, index);
22779 return -EINVAL;
22780 }
22781
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022782 session_type =
22783 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
22784 SESSION_TYPE_RX : SESSION_TYPE_TX;
22785
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022786 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
22787 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022788 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
22789 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022790 compr_passthr_mode = false;
22791
22792 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22793 unsigned long copp =
22794 session_copp_map[i]
22795 [SESSION_TYPE_RX][be_idx];
22796 if (!test_bit(idx, &copp))
22797 continue;
22798 topo_id = adm_get_topology_for_port_copp_idx(port_id,
22799 idx);
22800 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
22801 continue;
22802 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
22803 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022804 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022805 switch (pp_id) {
22806 case ADM_PP_PARAM_MUTE_ID:
22807 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
22808 mute = ucontrol->value.integer.value[1] ? true : false;
22809 msm_bedais_pp_params[index].mute_on = mute;
22810 set_bit(ADM_PP_PARAM_MUTE_BIT,
22811 &msm_bedais_pp_params[index].pp_params_config);
22812 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22813 adm_send_compressed_device_mute(port_id,
22814 idx, mute);
22815 break;
22816 case ADM_PP_PARAM_LATENCY_ID:
22817 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
22818 msm_bedais_pp_params[index].latency =
22819 ucontrol->value.integer.value[1];
22820 set_bit(ADM_PP_PARAM_LATENCY_BIT,
22821 &msm_bedais_pp_params[index].pp_params_config);
22822 latency = msm_bedais_pp_params[index].latency =
22823 ucontrol->value.integer.value[1];
22824 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
22825 adm_send_compressed_device_latency(port_id,
22826 idx, latency);
22827 break;
22828 default:
22829 pr_info("%s, device pp param %d not supported\n",
22830 __func__, pp_id);
22831 break;
22832 }
22833 }
22834 }
22835 return 0;
22836}
22837
22838static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
22839 struct snd_ctl_elem_value *ucontrol)
22840{
22841 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
22842 return 0;
22843}
22844
22845static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
22846 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
22847 0, 3, msm_routing_get_device_pp_params_mixer,
22848 msm_routing_put_device_pp_params_mixer),
22849};
22850
22851static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
22852 struct snd_ctl_elem_value *ucontrol)
22853{
22854 ucontrol->value.integer.value[0] =
22855 core_get_license_status(ASM_MEDIA_FMT_APTX);
22856 pr_debug("%s: status %ld\n", __func__,
22857 ucontrol->value.integer.value[0]);
22858 return 0;
22859}
22860
22861static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
22862 struct snd_ctl_elem_value *ucontrol)
22863{
22864 int32_t status = 0;
22865
22866 status = core_set_license(ucontrol->value.integer.value[0],
22867 APTX_CLASSIC_DEC_LICENSE_ID);
22868 pr_debug("%s: status %d\n", __func__, status);
22869 return status;
22870}
22871
22872static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
22873 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
22874 0xFFFF, 0, msm_aptx_dec_license_control_get,
22875 msm_aptx_dec_license_control_put),
22876};
22877
22878static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
22879 struct snd_ctl_elem_info *uinfo)
22880{
22881 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
22882 uinfo->count = sizeof(be_dai_name_table);
22883 return 0;
22884}
22885
22886static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
22887 unsigned int __user *bytes,
22888 unsigned int size)
22889{
22890 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053022891 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022892
22893 if (size < sizeof(be_dai_name_table)) {
22894 pr_err("%s: invalid size %d requested, returning\n",
22895 __func__, size);
22896 ret = -EINVAL;
22897 goto done;
22898 }
22899
22900 /*
22901 * Fill be_dai_name_table from msm_bedais table to reduce code changes
22902 * needed when adding new backends
22903 */
22904 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
22905 be_dai_name_table[i].be_id = i;
22906 strlcpy(be_dai_name_table[i].be_name,
22907 msm_bedais[i].name,
22908 LPASS_BE_NAME_MAX_LENGTH);
22909 }
22910
22911 ret = copy_to_user(bytes, &be_dai_name_table,
22912 sizeof(be_dai_name_table));
22913 if (ret) {
22914 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
22915 ret = -EFAULT;
22916 }
22917
22918done:
22919 return ret;
22920}
22921
22922static const struct snd_kcontrol_new
22923 msm_routing_be_dai_name_table_mixer_controls[] = {
22924 {
22925 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
22926 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
22927 .info = msm_routing_be_dai_name_table_info,
22928 .name = "Backend DAI Name Table",
22929 .tlv.c = snd_soc_bytes_tlv_callback,
22930 .private_value = (unsigned long) &(struct soc_bytes_ext) {
22931 .max = sizeof(be_dai_name_table),
22932 .get = msm_routing_be_dai_name_table_tlv_get,
22933 }
22934 },
22935};
22936
22937static int msm_routing_stereo_channel_reverse_control_get(
22938 struct snd_kcontrol *kcontrol,
22939 struct snd_ctl_elem_value *ucontrol)
22940{
22941 ucontrol->value.integer.value[0] = swap_ch;
22942 pr_debug("%s: Swap channel value: %ld\n", __func__,
22943 ucontrol->value.integer.value[0]);
22944 return 0;
22945}
22946
22947static int msm_routing_stereo_channel_reverse_control_put(
22948 struct snd_kcontrol *kcontrol,
22949 struct snd_ctl_elem_value *ucontrol)
22950{
22951 int i, idx, be_index, port_id;
22952 int ret = 0;
22953 unsigned long copp;
22954
22955 pr_debug("%s Swap channel value:%ld\n", __func__,
22956 ucontrol->value.integer.value[0]);
22957
22958 swap_ch = ucontrol->value.integer.value[0];
22959
22960 mutex_lock(&routing_lock);
22961 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
22962 port_id = msm_bedais[be_index].port_id;
22963 if (!msm_bedais[be_index].active)
22964 continue;
22965
22966 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
22967 MSM_FRONTEND_DAI_MM_SIZE) {
22968 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
22969 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
22970 if (!test_bit(idx, &copp))
22971 continue;
22972
22973 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
22974 __func__, port_id, idx);
22975 ret = adm_swap_speaker_channels(
22976 port_id, idx,
22977 msm_bedais[be_index].sample_rate,
22978 swap_ch);
22979 if (ret) {
22980 pr_err("%s:Swap_channel failed, err=%d\n",
22981 __func__, ret);
22982 goto done;
22983 }
22984 }
22985 }
22986 }
22987done:
22988 mutex_unlock(&routing_lock);
22989 return ret;
22990}
22991
22992static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
22993 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
22994 1, 0, msm_routing_stereo_channel_reverse_control_get,
22995 msm_routing_stereo_channel_reverse_control_put),
22996};
22997
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080022998static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
22999 struct snd_ctl_elem_info *uinfo)
23000{
23001 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23002 uinfo->count = 1;
23003 return 0;
23004}
23005
23006static int msm_routing_instance_id_support_put(
23007 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23008{
23009 bool supported = ucontrol->value.integer.value[0] ? true : false;
23010
23011 q6common_update_instance_id_support(supported);
23012 return 0;
23013}
23014
23015static int msm_routing_instance_id_support_get(
23016 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23017{
23018 bool supported = false;
23019
23020 supported = q6common_is_instance_id_supported();
23021 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23022
23023 return 0;
23024}
23025
23026static const struct snd_kcontrol_new
23027 msm_routing_feature_support_mixer_controls[] = {
23028 {
23029 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23030 SNDRV_CTL_ELEM_ACCESS_WRITE,
23031 .info = msm_routing_instance_id_support_info,
23032 .name = "Instance ID Support",
23033 .put = msm_routing_instance_id_support_put,
23034 .get = msm_routing_instance_id_support_get,
23035 },
23036};
23037
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023038static const struct snd_pcm_ops msm_routing_pcm_ops = {
23039 .hw_params = msm_pcm_routing_hw_params,
23040 .close = msm_pcm_routing_close,
23041 .prepare = msm_pcm_routing_prepare,
23042};
23043
23044/* Not used but frame seems to require it */
23045static int msm_routing_probe(struct snd_soc_platform *platform)
23046{
23047 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
23048 ARRAY_SIZE(msm_qdsp6_widgets));
23049 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
23050 ARRAY_SIZE(intercon));
23051
23052 snd_soc_dapm_new_widgets(platform->component.dapm.card);
23053
23054 snd_soc_add_platform_controls(platform, lsm_controls,
23055 ARRAY_SIZE(lsm_controls));
23056
23057 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
23058 ARRAY_SIZE(aanc_slim_0_rx_mux));
23059
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023060 snd_soc_add_platform_controls(platform, aanc_noise_level,
23061 ARRAY_SIZE(aanc_noise_level));
23062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023063 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
23064 ARRAY_SIZE(msm_voc_session_controls));
23065
23066 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
23067 ARRAY_SIZE(app_type_cfg_controls));
23068
23069 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
23070 ARRAY_SIZE(lsm_app_type_cfg_controls));
23071
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023072 snd_soc_add_platform_controls(platform, module_cfg_controls,
23073 ARRAY_SIZE(module_cfg_controls));
23074
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023075 snd_soc_add_platform_controls(platform,
23076 stereo_to_custom_stereo_controls,
23077 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23078
23079 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
23080 ARRAY_SIZE(ec_ref_param_controls));
23081
23082 snd_soc_add_platform_controls(platform, channel_mixer_controls,
23083 ARRAY_SIZE(channel_mixer_controls));
23084
23085 msm_qti_pp_add_controls(platform);
23086
23087 msm_dts_srs_tm_add_controls(platform);
23088
23089 msm_dolby_dap_add_controls(platform);
23090
23091 snd_soc_add_platform_controls(platform,
23092 use_ds1_or_ds2_controls,
23093 ARRAY_SIZE(use_ds1_or_ds2_controls));
23094
23095 snd_soc_add_platform_controls(platform,
23096 device_pp_params_mixer_controls,
23097 ARRAY_SIZE(device_pp_params_mixer_controls));
23098
23099 snd_soc_add_platform_controls(platform,
23100 msm_routing_be_dai_name_table_mixer_controls,
23101 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23102
23103 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
23104 ARRAY_SIZE(msm_source_tracking_controls));
23105 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
23106 ARRAY_SIZE(adm_channel_config_controls));
23107
23108 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
23109 ARRAY_SIZE(aptx_dec_license_controls));
23110 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
23111 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023112 snd_soc_add_platform_controls(
23113 platform, msm_routing_feature_support_mixer_controls,
23114 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23115
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023116 return 0;
23117}
23118
23119int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23120{
23121 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23122}
23123
23124void msm_routing_pcm_free(struct snd_pcm *pcm)
23125{
23126 msm_pcm_routing_hwdep_free(pcm);
23127}
23128
23129static struct snd_soc_platform_driver msm_soc_routing_platform = {
23130 .ops = &msm_routing_pcm_ops,
23131 .probe = msm_routing_probe,
23132 .pcm_new = msm_routing_pcm_new,
23133 .pcm_free = msm_routing_pcm_free,
23134};
23135
23136static int msm_routing_pcm_probe(struct platform_device *pdev)
23137{
23138
23139 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
23140 return snd_soc_register_platform(&pdev->dev,
23141 &msm_soc_routing_platform);
23142}
23143
23144static int msm_routing_pcm_remove(struct platform_device *pdev)
23145{
23146 snd_soc_unregister_platform(&pdev->dev);
23147 return 0;
23148}
23149
23150static const struct of_device_id msm_pcm_routing_dt_match[] = {
23151 {.compatible = "qcom,msm-pcm-routing"},
23152 {}
23153};
23154MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23155
23156static struct platform_driver msm_routing_pcm_driver = {
23157 .driver = {
23158 .name = "msm-pcm-routing",
23159 .owner = THIS_MODULE,
23160 .of_match_table = msm_pcm_routing_dt_match,
23161 },
23162 .probe = msm_routing_pcm_probe,
23163 .remove = msm_routing_pcm_remove,
23164};
23165
23166int msm_routing_check_backend_enabled(int fedai_id)
23167{
23168 int i;
23169
23170 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23171 /* bad ID assigned in machine driver */
23172 pr_err("%s: bad MM ID\n", __func__);
23173 return 0;
23174 }
23175 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23176 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23177 return msm_bedais[i].active;
23178 }
23179 return 0;
23180}
23181
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023182static int get_cal_type_index(int32_t cal_type)
23183{
23184 int ret = -EINVAL;
23185
23186 switch (cal_type) {
23187 case ADM_TOPOLOGY_CAL_TYPE:
23188 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23189 break;
23190 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23191 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23192 break;
23193 default:
23194 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23195 }
23196 return ret;
23197}
23198
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023199static int msm_routing_set_cal(int32_t cal_type,
23200 size_t data_size, void *data)
23201{
23202 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023203 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023204 pr_debug("%s\n", __func__);
23205
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023206 cal_index = get_cal_type_index(cal_type);
23207 if (cal_index < 0) {
23208 pr_err("%s: Could not get cal index %d\n",
23209 __func__, cal_index);
23210 ret = -EINVAL;
23211 goto done;
23212 }
23213
23214 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023215 if (ret < 0) {
23216 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23217 __func__, ret, cal_type);
23218 ret = -EINVAL;
23219 goto done;
23220 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023221 /* Pre-load if it is ADM topology */
23222 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23223 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23224 msm_routing_load_topology(data_size, data);
23225 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023226done:
23227 return ret;
23228}
23229
23230static void msm_routing_delete_cal_data(void)
23231{
23232 pr_debug("%s\n", __func__);
23233
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023234 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023235}
23236
23237static int msm_routing_init_cal_data(void)
23238{
23239 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023240 struct cal_type_info cal_type_info[] = {
23241 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023242 {NULL, NULL, NULL,
23243 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023244 {NULL, NULL, cal_utils_match_buf_num} },
23245
23246 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23247 {NULL, NULL, NULL,
23248 msm_routing_set_cal, NULL, NULL} },
23249 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023250 };
23251 pr_debug("%s\n", __func__);
23252
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023253 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23254 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023255 if (ret < 0) {
23256 pr_err("%s: could not create cal type!\n",
23257 __func__);
23258 ret = -EINVAL;
23259 goto err;
23260 }
23261
23262 return ret;
23263err:
23264 msm_routing_delete_cal_data();
23265 return ret;
23266}
23267
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023268int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023269{
23270 mutex_init(&routing_lock);
23271 if (msm_routing_init_cal_data())
23272 pr_err("%s: could not init cal data!\n", __func__);
23273
23274 afe_set_routing_callback(
23275 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23276
23277 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23278 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23279
23280 return platform_driver_register(&msm_routing_pcm_driver);
23281}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023282
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023283void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023284{
23285 msm_routing_delete_cal_data();
23286 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23287 mutex_destroy(&routing_lock);
23288 platform_driver_unregister(&msm_routing_pcm_driver);
23289}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023290
23291MODULE_DESCRIPTION("MSM routing platform driver");
23292MODULE_LICENSE("GPL v2");