blob: 5b42bcdf0915f9c2bc01f25e06330098f37f7f5f [file] [log] [blame]
Ramjee Singh29973d72020-03-06 09:21:43 +05301/* Copyright (c) 2012-2020, 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>
40#include <dsp/audio_cal_utils.h>
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053041
42#include "msm-pcm-routing-v2.h"
43#include "msm-pcm-routing-devdep.h"
44#include "msm-qti-pp-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053045#include "msm-dolby-dap-config.h"
46#include "msm-ds2-dap-config.h"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053047
48#ifndef CONFIG_DOLBY_DAP
49#undef DOLBY_ADM_COPP_TOPOLOGY_ID
50#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
51#endif
52
53#ifndef CONFIG_DOLBY_DS2
54#undef DS2_ADM_COPP_TOPOLOGY_ID
55#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
56#endif
57
58static struct mutex routing_lock;
59
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053060static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053061
62static int fm_switch_enable;
63static int hfp_switch_enable;
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080064static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053065static int int0_mi2s_switch_enable;
66static int int4_mi2s_switch_enable;
67static int pri_mi2s_switch_enable;
68static int sec_mi2s_switch_enable;
69static int tert_mi2s_switch_enable;
70static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053071static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053072static int fm_pcmrx_switch_enable;
73static int usb_switch_enable;
74static int lsm_port_index;
75static int slim0_rx_aanc_fb_port;
76static int msm_route_ec_ref_rx;
77static int msm_ec_ref_ch = 4;
78static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
79static int msm_ec_ref_sampling_rate = 48000;
80static uint32_t voc_session_id = ALL_SESSION_VSID;
81static int msm_route_ext_ec_ref;
82static bool is_custom_stereo_on;
83static bool is_ds2_on;
84static bool swap_ch;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053085static int msm_ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053086
87#define WEIGHT_0_DB 0x4000
88/* all the FEs which can support channel mixer */
89static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
90/* input BE for each FE */
91static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
92
93enum {
94 MADNONE,
95 MADAUDIO,
96 MADBEACON,
97 MADULTRASOUND,
98 MADSWAUDIO,
99};
100
101#define ADM_LSM_PORT_INDEX 9
102
103#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
104#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
105#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
106#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
107#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
108#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
109#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
110#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
Ashish Jain01b10322018-05-12 15:37:44 +0530111#define PRI_TDM_TX_3_TEXT "PRI_TDM_TX_3"
112#define PRI_TDM_TX_2_TEXT "PRI_TDM_TX_2"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530113#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
114#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
115
116#define LSM_FUNCTION_TEXT "LSM Function"
117static const char * const lsm_port_text[] = {
118 "None",
119 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
120 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
121 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Ashish Jain01b10322018-05-12 15:37:44 +0530122 INT3_MI2S_TX_TEXT, PRI_TDM_TX_2_TEXT, PRI_TDM_TX_3_TEXT,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530123};
124
125struct msm_pcm_route_bdai_pp_params {
126 u16 port_id; /* AFE port ID */
127 unsigned long pp_params_config;
128 bool mute_on;
129 int latency;
130};
131
132static struct msm_pcm_route_bdai_pp_params
133 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
134 {HDMI_RX, 0, 0, 0},
135 {DISPLAY_PORT_RX, 0, 0, 0},
136};
137
138/*
139 * The be_dai_name_table is passed to HAL so that it can specify the
140 * BE ID for the BE it wants to enable based on the name. Thus there
141 * is a matching table and structure in HAL that need to be updated
142 * if any changes to these are made.
143 */
144struct msm_pcm_route_bdai_name {
145 unsigned int be_id;
146 char be_name[LPASS_BE_NAME_MAX_LENGTH];
147};
148static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
149
150static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
151 int fe_id);
152
153static int msm_routing_get_bit_width(unsigned int format)
154{
155 int bit_width;
156
157 switch (format) {
158 case SNDRV_PCM_FORMAT_S32_LE:
159 bit_width = 32;
160 break;
161 case SNDRV_PCM_FORMAT_S24_LE:
162 case SNDRV_PCM_FORMAT_S24_3LE:
163 bit_width = 24;
164 break;
165 case SNDRV_PCM_FORMAT_S16_LE:
166 default:
167 bit_width = 16;
168 }
169 return bit_width;
170}
171
172static bool msm_is_resample_needed(int input_sr, int output_sr)
173{
174 bool rc = false;
175
176 if (input_sr != output_sr)
177 rc = true;
178
179 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
180 (rc ? "oh yes" : "not really"),
181 input_sr, output_sr);
182
183 return rc;
184}
185
186static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
187 int channels)
188{
189 int rc = 0;
190
191 switch (topology) {
192 case SRS_TRUMEDIA_TOPOLOGY_ID:
193 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
194 msm_dts_srs_tm_init(port_id, copp_idx);
195 break;
196 case DS2_ADM_COPP_TOPOLOGY_ID:
197 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
198 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
199 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
200 is_custom_stereo_on);
201 if (rc < 0)
202 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
203 __func__, topology, port_id,
204 is_custom_stereo_on, rc);
205 break;
206 case DOLBY_ADM_COPP_TOPOLOGY_ID:
207 if (is_ds2_on) {
208 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
209 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
210 is_custom_stereo_on);
211 if (rc < 0)
212 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
213 __func__, topology, port_id, rc);
214 } else {
215 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
216 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
217 is_custom_stereo_on);
218 if (rc < 0)
219 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
220 __func__, topology, port_id, rc);
221 }
222 break;
223 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
224 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
225 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
226 if (rc < 0)
227 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
228 __func__, topology, port_id, copp_idx, rc);
229 break;
230 default:
231 /* custom topology specific feature param handlers */
232 break;
233 }
234}
235
236static void msm_pcm_routing_deinit_pp(int port_id, int topology)
237{
238 switch (topology) {
239 case SRS_TRUMEDIA_TOPOLOGY_ID:
240 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
241 msm_dts_srs_tm_deinit(port_id);
242 break;
243 case DS2_ADM_COPP_TOPOLOGY_ID:
244 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
245 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
246 msm_ds2_dap_deinit(port_id);
247 break;
248 case DOLBY_ADM_COPP_TOPOLOGY_ID:
249 if (is_ds2_on) {
250 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
251 msm_ds2_dap_deinit(port_id);
252 } else {
253 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
254 msm_dolby_dap_deinit(port_id);
255 }
256 break;
257 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
258 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
259 msm_qti_pp_asphere_deinit(port_id);
260 break;
261 default:
262 /* custom topology specific feature deinit handlers */
263 break;
264 }
265}
266
267static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
268 int path_type, int perf_mode)
269{
270 int itr = 0, rc = 0;
271
272 if ((path_type == ADM_PATH_PLAYBACK) &&
273 (perf_mode == LEGACY_PCM_MODE) &&
274 is_custom_stereo_on) {
275 for (itr = 0; itr < payload.num_copps; itr++) {
276 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
277 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
278 continue;
279 }
280
281 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
282 payload.port_id[itr],
283 payload.copp_idx[itr],
284 payload.session_id,
285 Q14_GAIN_ZERO_POINT_FIVE,
286 Q14_GAIN_ZERO_POINT_FIVE,
287 Q14_GAIN_ZERO_POINT_FIVE,
288 Q14_GAIN_ZERO_POINT_FIVE);
289 if (rc < 0)
290 pr_err("%s: err setting custom stereo\n",
291 __func__);
292 }
293 }
294}
295
296#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
297struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
298 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_RX},
299 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_PRI_I2S_TX},
300 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_RX},
301 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_0_TX},
302 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_HDMI},
303 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_RX},
304 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_BT_SCO_TX},
305 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_RX},
306 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_INT_FM_TX},
307 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
308 LPASS_BE_AFE_PCM_RX},
309 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
310 LPASS_BE_AFE_PCM_TX},
311 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
312 LPASS_BE_AUXPCM_RX},
313 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
314 LPASS_BE_AUXPCM_TX},
315 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
316 LPASS_BE_VOICE_PLAYBACK_TX},
317 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
318 LPASS_BE_VOICE2_PLAYBACK_TX},
319 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
320 LPASS_BE_INCALL_RECORD_RX},
321 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
322 LPASS_BE_INCALL_RECORD_TX},
323 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_RX},
324 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_MI2S_TX},
325 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SEC_I2S_RX},
326 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_RX},
327 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_1_TX},
328 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_RX},
329 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_2_TX},
330 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_RX},
331 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_3_TX},
332 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_RX},
333 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_4_TX},
334 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_RX},
335 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_5_TX},
336 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_RX},
337 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_6_TX},
338 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_RX},
339 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_7_TX},
340 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_RX},
341 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_SLIMBUS_8_TX},
342 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_RX},
343 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_TX},
344 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_STUB_1_TX},
345 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
346 LPASS_BE_QUAT_MI2S_RX},
347 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
348 LPASS_BE_QUAT_MI2S_TX},
349 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
350 LPASS_BE_SEC_MI2S_RX},
351 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
352 LPASS_BE_SEC_MI2S_TX},
353 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
354 LPASS_BE_PRI_MI2S_RX},
355 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
356 LPASS_BE_PRI_MI2S_TX},
357 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
358 LPASS_BE_TERT_MI2S_RX},
359 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
360 LPASS_BE_TERT_MI2S_TX},
361 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
362 LPASS_BE_AUDIO_I2S_RX},
363 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
364 LPASS_BE_SEC_AUXPCM_RX},
365 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
366 LPASS_BE_SEC_AUXPCM_TX},
367 { AFE_PORT_ID_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
368 LPASS_BE_SPDIF_RX},
369 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0, {0},
370 LPASS_BE_SEC_MI2S_RX_SD1},
371 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
372 LPASS_BE_QUIN_MI2S_RX},
373 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
374 LPASS_BE_QUIN_MI2S_TX},
375 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
376 LPASS_BE_SENARY_MI2S_TX},
377 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
378 LPASS_BE_PRI_TDM_RX_0},
379 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
380 LPASS_BE_PRI_TDM_TX_0},
381 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
382 LPASS_BE_PRI_TDM_RX_1},
383 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
384 LPASS_BE_PRI_TDM_TX_1},
385 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
386 LPASS_BE_PRI_TDM_RX_2},
387 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
388 LPASS_BE_PRI_TDM_TX_2},
389 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
390 LPASS_BE_PRI_TDM_RX_3},
391 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
392 LPASS_BE_PRI_TDM_TX_3},
393 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
394 LPASS_BE_PRI_TDM_RX_4},
395 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
396 LPASS_BE_PRI_TDM_TX_4},
397 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
398 LPASS_BE_PRI_TDM_RX_5},
399 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
400 LPASS_BE_PRI_TDM_TX_5},
401 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
402 LPASS_BE_PRI_TDM_RX_6},
403 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
404 LPASS_BE_PRI_TDM_TX_6},
405 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
406 LPASS_BE_PRI_TDM_RX_7},
407 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
408 LPASS_BE_PRI_TDM_TX_7},
409 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
410 LPASS_BE_SEC_TDM_RX_0},
411 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
412 LPASS_BE_SEC_TDM_TX_0},
413 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
414 LPASS_BE_SEC_TDM_RX_1},
415 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
416 LPASS_BE_SEC_TDM_TX_1},
417 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
418 LPASS_BE_SEC_TDM_RX_2},
419 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
420 LPASS_BE_SEC_TDM_TX_2},
421 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
422 LPASS_BE_SEC_TDM_RX_3},
423 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
424 LPASS_BE_SEC_TDM_TX_3},
425 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
426 LPASS_BE_SEC_TDM_RX_4},
427 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
428 LPASS_BE_SEC_TDM_TX_4},
429 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
430 LPASS_BE_SEC_TDM_RX_5},
431 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
432 LPASS_BE_SEC_TDM_TX_5},
433 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
434 LPASS_BE_SEC_TDM_RX_6},
435 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
436 LPASS_BE_SEC_TDM_TX_6},
437 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
438 LPASS_BE_SEC_TDM_RX_7},
439 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
440 LPASS_BE_SEC_TDM_TX_7},
441 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
442 LPASS_BE_TERT_TDM_RX_0},
443 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
444 LPASS_BE_TERT_TDM_TX_0},
445 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
446 LPASS_BE_TERT_TDM_RX_1},
447 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
448 LPASS_BE_TERT_TDM_TX_1},
449 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
450 LPASS_BE_TERT_TDM_RX_2},
451 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
452 LPASS_BE_TERT_TDM_TX_2},
453 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
454 LPASS_BE_TERT_TDM_RX_3},
455 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
456 LPASS_BE_TERT_TDM_TX_3},
457 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
458 LPASS_BE_TERT_TDM_RX_4},
459 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
460 LPASS_BE_TERT_TDM_TX_4},
461 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
462 LPASS_BE_TERT_TDM_RX_5},
463 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
464 LPASS_BE_TERT_TDM_TX_5},
465 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
466 LPASS_BE_TERT_TDM_RX_6},
467 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
468 LPASS_BE_TERT_TDM_TX_6},
469 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
470 LPASS_BE_TERT_TDM_RX_7},
471 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
472 LPASS_BE_TERT_TDM_TX_7},
473 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
474 LPASS_BE_QUAT_TDM_RX_0},
475 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
476 LPASS_BE_QUAT_TDM_TX_0},
477 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
478 LPASS_BE_QUAT_TDM_RX_1},
479 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
480 LPASS_BE_QUAT_TDM_TX_1},
481 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
482 LPASS_BE_QUAT_TDM_RX_2},
483 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
484 LPASS_BE_QUAT_TDM_TX_2},
485 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
486 LPASS_BE_QUAT_TDM_RX_3},
487 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
488 LPASS_BE_QUAT_TDM_TX_3},
489 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
490 LPASS_BE_QUAT_TDM_RX_4},
491 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
492 LPASS_BE_QUAT_TDM_TX_4},
493 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
494 LPASS_BE_QUAT_TDM_RX_5},
495 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
496 LPASS_BE_QUAT_TDM_TX_5},
497 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
498 LPASS_BE_QUAT_TDM_RX_6},
499 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
500 LPASS_BE_QUAT_TDM_TX_6},
501 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
502 LPASS_BE_QUAT_TDM_RX_7},
503 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
504 LPASS_BE_QUAT_TDM_TX_7},
Rohit Kumara5077932017-09-10 22:05:05 +0530505 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
506 LPASS_BE_QUIN_TDM_RX_0},
507 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
508 LPASS_BE_QUIN_TDM_TX_0},
509 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
510 LPASS_BE_QUIN_TDM_RX_1},
511 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0, {0},
512 LPASS_BE_QUIN_TDM_TX_1},
513 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
514 LPASS_BE_QUIN_TDM_RX_2},
515 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0, {0},
516 LPASS_BE_QUIN_TDM_TX_2},
517 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
518 LPASS_BE_QUIN_TDM_RX_3},
519 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0, {0},
520 LPASS_BE_QUIN_TDM_TX_3},
521 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
522 LPASS_BE_QUIN_TDM_RX_4},
523 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0, {0},
524 LPASS_BE_QUIN_TDM_TX_4},
525 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
526 LPASS_BE_QUIN_TDM_RX_5},
527 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0, {0},
528 LPASS_BE_QUIN_TDM_TX_5},
529 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
530 LPASS_BE_QUIN_TDM_RX_6},
531 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0, {0},
532 LPASS_BE_QUIN_TDM_TX_6},
533 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
534 LPASS_BE_QUIN_TDM_RX_7},
535 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0, {0},
536 LPASS_BE_QUIN_TDM_TX_7},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530537 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
538 LPASS_BE_INT_BT_A2DP_RX},
539 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
540 LPASS_BE_USB_AUDIO_RX},
541 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
542 LPASS_BE_USB_AUDIO_TX},
543 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
544 LPASS_BE_DISPLAY_PORT},
545 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
546 LPASS_BE_TERT_AUXPCM_RX},
547 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
548 LPASS_BE_TERT_AUXPCM_TX},
549 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
550 LPASS_BE_QUAT_AUXPCM_RX},
551 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
552 LPASS_BE_QUAT_AUXPCM_TX},
Rohit Kumara5077932017-09-10 22:05:05 +0530553 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
554 LPASS_BE_QUIN_AUXPCM_RX},
555 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
556 LPASS_BE_QUIN_AUXPCM_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530557 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
558 LPASS_BE_INT0_MI2S_RX},
559 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
560 LPASS_BE_INT0_MI2S_TX},
561 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
562 LPASS_BE_INT1_MI2S_RX},
563 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
564 LPASS_BE_INT1_MI2S_TX},
565 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
566 LPASS_BE_INT2_MI2S_RX},
567 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
568 LPASS_BE_INT2_MI2S_TX},
569 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
570 LPASS_BE_INT3_MI2S_RX},
571 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
572 LPASS_BE_INT3_MI2S_TX},
573 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
574 LPASS_BE_INT4_MI2S_RX},
575 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
576 LPASS_BE_INT4_MI2S_TX},
577 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
578 LPASS_BE_INT5_MI2S_RX},
579 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
580 LPASS_BE_INT5_MI2S_TX},
581 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
582 LPASS_BE_INT6_MI2S_RX},
583 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
584 LPASS_BE_INT6_MI2S_TX},
Raja Mallik425e1d32018-05-20 19:21:10 +0530585 { AFE_LOOPBACK_TX, 0, {0}, {0}, 0, 0, 0, 0, {0}, LPASS_BE_AFE_LOOPBACK_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530586};
587
588/* Track ASM playback & capture sessions of DAI
589 * Track LSM listen sessions
590 */
591static struct msm_pcm_routing_fdai_data
592 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
593 /* MULTIMEDIA1 */
594 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
595 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
596 /* MULTIMEDIA2 */
597 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
598 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
599 /* MULTIMEDIA3 */
600 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
601 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
602 /* MULTIMEDIA4 */
603 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
604 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
605 /* MULTIMEDIA5 */
606 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
607 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
608 /* MULTIMEDIA6 */
609 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
610 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
611 /* MULTIMEDIA7*/
612 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
613 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
614 /* MULTIMEDIA8 */
615 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
616 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
617 /* MULTIMEDIA9 */
618 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
619 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
620 /* MULTIMEDIA10 */
621 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
622 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
623 /* MULTIMEDIA11 */
624 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
625 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
626 /* MULTIMEDIA12 */
627 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
628 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
629 /* MULTIMEDIA13 */
630 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
631 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
632 /* MULTIMEDIA14 */
633 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
634 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
635 /* MULTIMEDIA15 */
636 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
637 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
638 /* MULTIMEDIA16 */
639 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
640 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
641 /* MULTIMEDIA17 */
642 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
643 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
644 /* MULTIMEDIA18 */
645 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
646 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
647 /* MULTIMEDIA19 */
648 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
649 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
650 /* MULTIMEDIA20 */
651 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
652 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +0530653 /* MULTIMEDIA28 */
654 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
655 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
656 /* MULTIMEDIA29 */
657 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
658 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Ramjee Singh29973d72020-03-06 09:21:43 +0530659 /* MULTIMEDIA30 */
660 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
661 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530662 /* VOIP */
663 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
664 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
665 /* AFE_RX */
666 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
667 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
668 /* AFE_TX */
669 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
670 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
671 /* VOICE_STUB */
672 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
673 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530674 /* DTMF_RX */
675 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
676 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530677 /* QCHAT */
678 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
679 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
680 /* VOLTE_STUB */
681 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
682 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
683 /* LSM1 */
684 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
685 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
686 /* LSM2 */
687 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
688 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
689 /* LSM3 */
690 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
691 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
692 /* LSM4 */
693 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
694 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
695 /* LSM5 */
696 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
697 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
698 /* LSM6 */
699 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
700 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
701 /* LSM7 */
702 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
703 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
704 /* LSM8 */
705 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
706 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
707 /* VOICE2_STUB */
708 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
709 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530710 /* VOICEMMODE1 */
711 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
712 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
713 /* VOICEMMODE2 */
714 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} },
715 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL} } },
716};
717
718static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
719 [MSM_BACKEND_DAI_MAX];
720static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
721static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
722static struct msm_pcm_stream_app_type_cfg
723 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
724
725static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
726
727/* The caller of this should aqcuire routing lock */
728void msm_pcm_routing_get_bedai_info(int be_idx,
729 struct msm_pcm_routing_bdai_data *be_dai)
730{
731 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
732 memcpy(be_dai, &msm_bedais[be_idx],
733 sizeof(struct msm_pcm_routing_bdai_data));
734}
735
736/* The caller of this should aqcuire routing lock */
737void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
738 struct msm_pcm_routing_fdai_data *fe_dai)
739{
740 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
741 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
742 sizeof(struct msm_pcm_routing_fdai_data));
743}
744
745void msm_pcm_routing_acquire_lock(void)
746{
747 mutex_lock(&routing_lock);
748}
749
750void msm_pcm_routing_release_lock(void)
751{
752 mutex_unlock(&routing_lock);
753}
754
755static int msm_pcm_routing_get_app_type_idx(int app_type)
756{
757 int idx;
758
759 pr_debug("%s: app_type: %d\n", __func__, app_type);
760 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
761 if (app_type_cfg[idx].app_type == app_type)
762 return idx;
763 }
764 pr_info("%s: App type not available, fallback to default\n", __func__);
765 return 0;
766}
767
768static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
769{
770 int idx;
771
772 pr_debug("%s: app_type: %d\n", __func__, app_type);
773 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
774 if (lsm_app_type_cfg[idx].app_type == app_type)
775 return idx;
776 }
777 pr_debug("%s: App type not available, fallback to default\n", __func__);
778 return 0;
779}
780
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +0530781static int get_port_id(int port_id)
782{
783 return (port_id == AFE_LOOPBACK_TX ? msm_ec_ref_port_id : port_id);
784}
785
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530786static bool is_mm_lsm_fe_id(int fe_id)
787{
788 bool rc = true;
789
790 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
791 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
792 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
793 rc = false;
794 }
795 return rc;
796}
797
Dhanalakshmi Siddani040e0262018-11-26 23:01:26 +0530798/*
799 * msm_pcm_routing_send_chmix_cfg
800 *
801 * Receives fe_id, ip_channel_cnt, op_channel_cnt, channel weight, session_type
802 * use_default_chmap and channel map to map in channel mixer and send to
803 * adm programmable matrix.
804 *
805 * fe_id - Passed value, frontend id which is wanted
806 * ip_channel_cnt - Passed value, number of input channels
807 * op_channel_cnt - Passed value, number of output channels
808 * ch_wght_coeff - Passed reference, weights for each output channel
809 * session_type - Passed value, session_type for RX or TX
810 * use_default_chmap - true if default channel map to be used
811 * ch_map - input/output channel map for playback/capture session respectively
812 */
813
814int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
815 int op_channel_cnt, int *ch_wght_coeff,
816 int session_type, bool use_default_chmap,
817 char *channel_map)
818{
819 int rc = 0, idx = 0, i, j;
820 int be_index = 0, port_id, index = 0;
821 unsigned int session_id = 0;
822
823 pr_debug("%s: fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d]\n",
824 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type);
825
826 if (!use_default_chmap && (channel_map == NULL)) {
827 pr_err("%s: No valid chan map and can't use default\n",
828 __func__);
829 return -EINVAL;
830 }
831
832 if ((ch_wght_coeff == NULL) || (op_channel_cnt > ADM_MAX_CHANNELS) ||
833 (ip_channel_cnt > ADM_MAX_CHANNELS)) {
834 pr_err("%s: Invalid channels or null coefficients\n", __func__);
835 return -EINVAL;
836 }
837
838 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
839 port_id = msm_bedais[be_index].port_id;
840 if (!msm_bedais[be_index].active ||
841 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
842 continue;
843
844 session_id = fe_dai_map[fe_id][session_type].strm_id;
845 channel_mixer[fe_id].input_channels[0] = ip_channel_cnt;
846 channel_mixer[fe_id].output_channel = op_channel_cnt;
847 channel_mixer[fe_id].rule = 0;
848
849 for (j = 0; j < op_channel_cnt; j++) {
850 for (i = 0; i < ip_channel_cnt; i++)
851 channel_mixer[fe_id].channel_weight[j][i] =
852 ch_wght_coeff[index++];
853 }
854 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
855 unsigned long copp =
856 session_copp_map[fe_id][session_type][be_index];
857 if (!test_bit(idx, &copp))
858 continue;
859 rc = adm_programable_channel_mixer(port_id,
860 idx, session_id, session_type,
861 channel_mixer + fe_id, 0,
862 use_default_chmap, channel_map);
863 if (rc < 0)
864 pr_err("%s: err setting channel mix config\n",
865 __func__);
866 }
867 }
868 return 0;
869}
870
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530871int msm_pcm_routing_reg_stream_app_type_cfg(
872 int fedai_id, int session_type, int be_id,
873 struct msm_pcm_stream_app_type_cfg *cfg_data)
874{
875 int ret = 0;
876
877 if (cfg_data == NULL) {
878 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
879 ret = -EINVAL;
880 goto done;
881 }
882
883 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
884 __func__, fedai_id, session_type, be_id,
885 cfg_data->app_type, cfg_data->acdb_dev_id,
886 cfg_data->sample_rate);
887
888 if (!is_mm_lsm_fe_id(fedai_id)) {
889 pr_err("%s: Invalid machine driver ID %d\n",
890 __func__, fedai_id);
891 ret = -EINVAL;
892 goto done;
893 }
894 if (session_type != SESSION_TYPE_RX &&
895 session_type != SESSION_TYPE_TX) {
896 pr_err("%s: Invalid session type %d\n",
897 __func__, session_type);
898 ret = -EINVAL;
899 goto done;
900 }
901 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
902 pr_err("%s: Received out of bounds be_id %d\n",
903 __func__, be_id);
904 ret = -EINVAL;
905 goto done;
906 }
907
908 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
909
910 /*
911 * Store the BE ID of the configuration information set as the latest so
912 * the get mixer control knows what to return.
913 */
914 last_be_id_configured[fedai_id][session_type] = be_id;
915
916done:
917 return ret;
918}
919EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
920
921/**
922 * msm_pcm_routing_get_stream_app_type_cfg
923 *
924 * Receives fedai_id, session_type, be_id, and populates app_type,
925 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
926 * -EINVAL and does not alter passed values.
927 *
928 * fedai_id - Passed value, front end ID for which app type config is wanted
929 * session_type - Passed value, session type for which app type config
930 * is wanted
931 * be_id - Returned value, back end device id the app type config data is for
932 * cfg_data - Returned value, configuration data used by app type config
933 */
934int msm_pcm_routing_get_stream_app_type_cfg(
935 int fedai_id, int session_type, int *bedai_id,
936 struct msm_pcm_stream_app_type_cfg *cfg_data)
937{
938 int be_id;
939 int ret = 0;
940
941 if (bedai_id == NULL) {
942 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
943 ret = -EINVAL;
944 goto done;
945 } else if (cfg_data == NULL) {
946 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
947 ret = -EINVAL;
948 goto done;
949 } else if (!is_mm_lsm_fe_id(fedai_id)) {
950 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
951 ret = -EINVAL;
952 goto done;
953 } else if (session_type != SESSION_TYPE_RX &&
954 session_type != SESSION_TYPE_TX) {
955 pr_err("%s: Invalid session type %d\n", __func__, session_type);
956 ret = -EINVAL;
957 goto done;
958 }
959
960 be_id = last_be_id_configured[fedai_id][session_type];
961 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
962 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
963 ret = -EINVAL;
964 goto done;
965 }
966
967 *bedai_id = be_id;
968 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
969 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
970 __func__, fedai_id, session_type, *bedai_id,
971 cfg_data->app_type, cfg_data->acdb_dev_id,
972 cfg_data->sample_rate);
973done:
974 return ret;
975}
976EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
977
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530978static struct cal_block_data *msm_routing_find_topology_by_path(int path,
979 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530980{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530981 struct list_head *ptr, *next;
982 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530983 pr_debug("%s\n", __func__);
984
985 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530986 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530987
988 cal_block = list_entry(ptr,
989 struct cal_block_data, list);
990
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -0700991 if (cal_utils_is_cal_stale(cal_block))
992 continue;
993
Aditya Bavanari2a627ae2017-11-21 20:24:53 +0530994 if (((struct audio_cal_info_adm_top *)cal_block
995 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530996 return cal_block;
997 }
998 }
999 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1000 return NULL;
1001}
1002
1003static struct cal_block_data *msm_routing_find_topology(int path,
1004 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301005 int acdb_id,
Haynes Mathew Georged3af1eb2018-06-08 17:26:24 -07001006 int cal_index,
1007 bool exact)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301008{
1009 struct list_head *ptr, *next;
1010 struct cal_block_data *cal_block = NULL;
1011 struct audio_cal_info_adm_top *cal_info;
1012
1013 pr_debug("%s\n", __func__);
1014
1015 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301016 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301017
1018 cal_block = list_entry(ptr,
1019 struct cal_block_data, list);
1020
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -07001021 if (cal_utils_is_cal_stale(cal_block))
1022 continue;
1023
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301024 cal_info = (struct audio_cal_info_adm_top *)
1025 cal_block->cal_info;
1026 if ((cal_info->path == path) &&
1027 (cal_info->app_type == app_type) &&
1028 (cal_info->acdb_id == acdb_id)) {
1029 return cal_block;
1030 }
1031 }
Haynes Mathew Georged3af1eb2018-06-08 17:26:24 -07001032 pr_debug("%s: Can't find topology for path %d, app %d, "
1033 "acdb_id %d %s\n", __func__, path, app_type, acdb_id,
1034 exact ? "fail" : "defaulting to search by path");
1035 return exact ? NULL : msm_routing_find_topology_by_path(path,
1036 cal_index);
1037}
1038
1039static int msm_routing_find_topology_on_index(int session_type, int app_type,
1040 int acdb_dev_id, int idx,
1041 bool exact)
1042{
1043 int topology = -EINVAL;
1044 struct cal_block_data *cal_block = NULL;
1045
1046 mutex_lock(&cal_data[idx]->lock);
1047 cal_block = msm_routing_find_topology(session_type, app_type,
1048 acdb_dev_id, idx, exact);
1049 if (cal_block != NULL) {
1050 topology = ((struct audio_cal_info_adm_top *)
1051 cal_block->cal_info)->topology;
1052 }
1053 mutex_unlock(&cal_data[idx]->lock);
1054 return topology;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301055}
1056
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -07001057/*
1058 * Retrieving cal_block will mark cal_block as stale.
1059 * Hence it cannot be reused or resent unless the flag
1060 * is reset.
1061 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301062static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1063 int be_id)
1064{
1065 int topology = NULL_COPP_TOPOLOGY;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301066 int app_type = 0, acdb_dev_id = 0;
1067
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301068 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1069 __func__, fedai_id, session_type, be_id);
1070
1071 if (cal_data == NULL)
1072 goto done;
1073
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301074 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1075 acdb_dev_id =
1076 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
Haynes Mathew Georged3af1eb2018-06-08 17:26:24 -07001077 pr_debug("%s: Check for exact LSM topology\n", __func__);
1078 topology = msm_routing_find_topology_on_index(session_type,
1079 app_type,
1080 acdb_dev_id,
1081 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX,
1082 true /*exact*/);
1083 if (topology < 0) {
1084 pr_debug("%s: Check for compatible topology\n", __func__);
1085 topology = msm_routing_find_topology_on_index(session_type,
1086 app_type,
1087 acdb_dev_id,
1088 ADM_TOPOLOGY_CAL_TYPE_IDX,
1089 false /*exact*/);
1090 if (topology < 0)
1091 topology = NULL_COPP_TOPOLOGY;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301092 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301093done:
1094 pr_debug("%s: Using topology %d\n", __func__, topology);
1095 return topology;
1096}
1097
1098static uint8_t is_be_dai_extproc(int be_dai)
1099{
1100 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1101 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1102 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1103 return 1;
1104 else
1105 return 0;
1106}
1107
1108static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1109 int path_type, int perf_mode,
1110 uint32_t passthr_mode)
1111{
1112 int i, port_type, j, num_copps = 0;
1113 struct route_payload payload;
1114
1115 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1116 path_type == ADM_PATH_COMPRESSED_RX) ?
1117 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1118
1119 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1120 if (!is_be_dai_extproc(i) &&
1121 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1122 (msm_bedais[i].active) &&
1123 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301124 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301125 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1126 unsigned long copp =
1127 session_copp_map[fedai_id][sess_type][i];
1128 if (test_bit(j, &copp)) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301129 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301130 payload.copp_idx[num_copps] = j;
1131 payload.app_type[num_copps] =
1132 fe_dai_app_type_cfg
1133 [fedai_id][sess_type][i]
1134 .app_type;
1135 payload.acdb_dev_id[num_copps] =
1136 fe_dai_app_type_cfg
1137 [fedai_id][sess_type][i]
1138 .acdb_dev_id;
1139 payload.sample_rate[num_copps] =
1140 fe_dai_app_type_cfg
1141 [fedai_id][sess_type][i]
1142 .sample_rate;
1143 num_copps++;
1144 }
1145 }
1146 }
1147 }
1148
1149 if (num_copps) {
1150 payload.num_copps = num_copps;
1151 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1152 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1153 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1154 }
1155}
1156
1157void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1158 int stream_type)
1159{
1160 int i, session_type, path_type, port_type;
1161 u32 mode = 0;
1162
1163 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1164 /* bad ID assigned in machine driver */
1165 pr_err("%s: bad MM ID\n", __func__);
1166 return;
1167 }
1168
1169 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1170 session_type = SESSION_TYPE_RX;
1171 path_type = ADM_PATH_PLAYBACK;
1172 port_type = MSM_AFE_PORT_TYPE_RX;
1173 } else {
1174 session_type = SESSION_TYPE_TX;
1175 path_type = ADM_PATH_LIVE_REC;
1176 port_type = MSM_AFE_PORT_TYPE_TX;
1177 }
1178
1179 mutex_lock(&routing_lock);
1180
1181 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1182 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1183 if (!is_be_dai_extproc(i) &&
1184 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1185 (msm_bedais[i].active) &&
1186 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1187 mode = afe_get_port_type(msm_bedais[i].port_id);
1188 adm_connect_afe_port(mode, dspst_id,
1189 msm_bedais[i].port_id);
1190 break;
1191 }
1192 }
1193 mutex_unlock(&routing_lock);
1194}
1195
1196static bool route_check_fe_id_adm_support(int fe_id)
1197{
1198 bool rc = true;
1199
1200 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1201 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1202 /* fe id is listen while port is set to afe */
1203 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1204 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1205 __func__, fe_id, lsm_port_index);
1206 rc = false;
1207 }
1208 }
1209
1210 return rc;
1211}
1212
1213int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1214 int dspst_id, int stream_type,
1215 uint32_t passthr_mode)
1216{
1217 int i, j, session_type, path_type, port_type, topology;
1218 int num_copps = 0;
1219 struct route_payload payload;
1220 u32 channels, sample_rate;
1221 u16 bit_width = 16;
1222 bool is_lsm;
1223
1224 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1225 __func__, fe_id, perf_mode, dspst_id,
1226 stream_type, passthr_mode);
1227 if (!is_mm_lsm_fe_id(fe_id)) {
1228 /* bad ID assigned in machine driver */
1229 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1230 return -EINVAL;
1231 }
1232
1233 if (!route_check_fe_id_adm_support(fe_id)) {
1234 /* ignore adm open if not supported for fe_id */
1235 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1236 return 0;
1237 }
1238
1239 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1240 session_type = SESSION_TYPE_RX;
1241 if (passthr_mode != LEGACY_PCM)
1242 path_type = ADM_PATH_COMPRESSED_RX;
1243 else
1244 path_type = ADM_PATH_PLAYBACK;
1245 port_type = MSM_AFE_PORT_TYPE_RX;
1246 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1247 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301248 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301249 path_type = ADM_PATH_COMPRESSED_TX;
1250 else
1251 path_type = ADM_PATH_LIVE_REC;
1252 port_type = MSM_AFE_PORT_TYPE_TX;
1253 } else {
1254 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1255 return -EINVAL;
1256 }
1257
1258 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1259 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1260 mutex_lock(&routing_lock);
1261
1262 payload.num_copps = 0; /* only RX needs to use payload */
1263 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
1264 /* re-enable EQ if active */
1265 msm_qti_pp_send_eq_values(fe_id);
1266 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1267 if (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))
1268 msm_bedais[i].passthr_mode[fe_id] = passthr_mode;
1269
1270 if (!is_be_dai_extproc(i) &&
1271 (afe_get_port_type(msm_bedais[i].port_id) ==
1272 port_type) &&
1273 (msm_bedais[i].active) &&
1274 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1275 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301276 int port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301277
1278 /*
1279 * check if ADM needs to be configured with different
1280 * channel mapping than backend
1281 */
1282 if (!msm_bedais[i].adm_override_ch)
1283 channels = msm_bedais[i].channel;
1284 else
1285 channels = msm_bedais[i].adm_override_ch;
1286
1287 bit_width = msm_routing_get_bit_width(
1288 msm_bedais[i].format);
1289 app_type =
1290 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1291 if (app_type && is_lsm) {
1292 app_type_idx =
1293 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1294 sample_rate =
1295 fe_dai_app_type_cfg[fe_id][session_type][i]
1296 .sample_rate;
1297 bit_width =
1298 lsm_app_type_cfg[app_type_idx].bit_width;
1299 } else if (app_type) {
1300 app_type_idx =
1301 msm_pcm_routing_get_app_type_idx(
1302 app_type);
1303 sample_rate =
1304 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1305 bit_width =
1306 app_type_cfg[app_type_idx].bit_width;
1307 } else {
1308 sample_rate = msm_bedais[i].sample_rate;
1309 }
1310 acdb_dev_id =
1311 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1312 topology = msm_routing_get_adm_topology(fe_id,
1313 session_type,
1314 i);
1315 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1316 || (passthr_mode ==
1317 COMPRESSED_PASSTHROUGH_GEN))
1318 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1319 pr_debug("%s: Before adm open topology %d\n", __func__,
1320 topology);
1321
1322 copp_idx =
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301323 adm_open(port_id, path_type, sample_rate,
1324 channels, topology, perf_mode,
1325 bit_width, app_type, acdb_dev_id,
1326 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301327 if ((copp_idx < 0) ||
1328 (copp_idx >= MAX_COPPS_PER_PORT)) {
1329 pr_err("%s:adm open failed coppid:%d\n",
1330 __func__, copp_idx);
1331 mutex_unlock(&routing_lock);
1332 return -EINVAL;
1333 }
1334 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1335 __func__, fe_id, session_type, i);
1336 set_bit(copp_idx,
1337 &session_copp_map[fe_id][session_type][i]);
1338
1339 if (msm_is_resample_needed(
1340 sample_rate,
1341 msm_bedais[i].sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301342 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301343 msm_bedais[i].sample_rate);
1344
1345 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1346 unsigned long copp =
1347 session_copp_map[fe_id][session_type][i];
1348 if (test_bit(j, &copp)) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301349 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301350 payload.copp_idx[num_copps] = j;
1351 payload.app_type[num_copps] =
1352 fe_dai_app_type_cfg
1353 [fe_id][session_type][i]
1354 .app_type;
1355 payload.acdb_dev_id[num_copps] =
1356 fe_dai_app_type_cfg
1357 [fe_id][session_type][i]
1358 .acdb_dev_id;
1359 payload.sample_rate[num_copps] =
1360 fe_dai_app_type_cfg
1361 [fe_id][session_type][i]
1362 .sample_rate;
1363 num_copps++;
1364 }
1365 }
1366 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
1367 && passthr_mode !=
1368 COMPRESSED_PASSTHROUGH_GEN) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301369 msm_routing_send_device_pp_params(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301370 copp_idx, fe_id);
1371 }
1372 }
1373 }
1374 if (num_copps) {
1375 payload.num_copps = num_copps;
1376 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1377 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1378 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1379 }
1380 mutex_unlock(&routing_lock);
1381 return 0;
1382}
1383
1384static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1385{
1386 u32 session_id;
1387
1388 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301389 case MSM_FRONTEND_DAI_QCHAT:
1390 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1391 break;
1392 case MSM_FRONTEND_DAI_VOIP:
1393 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1394 break;
1395 case MSM_FRONTEND_DAI_VOICEMMODE1:
1396 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1397 break;
1398 case MSM_FRONTEND_DAI_VOICEMMODE2:
1399 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1400 break;
1401 default:
1402 session_id = 0;
1403 }
1404
1405 pr_debug("%s session_id 0x%x", __func__, session_id);
1406 return session_id;
1407}
1408
1409static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1410 int dspst_id, int stream_type)
1411{
1412 int copp_idx = 0;
1413 int sess_type = 0;
1414 int i = 0, j = 0, be_id;
1415 int ret = 0;
Dhanalakshmi Siddani040e0262018-11-26 23:01:26 +05301416 bool use_default_chmap = true;
1417 char *ch_map = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301418
1419 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1420 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1421 return 0;
1422 }
1423
1424 if (!(channel_mixer[fe_id].enable)) {
1425 pr_debug("%s: channel mixer not enabled for FE %d\n",
1426 __func__, fe_id);
1427 return 0;
1428 }
1429
1430 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1431 sess_type = SESSION_TYPE_RX;
1432 else
1433 sess_type = SESSION_TYPE_TX;
1434
1435 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1436 ++i) {
1437 be_id = channel_input[fe_id][i] - 1;
1438 channel_mixer[fe_id].input_channels[i] =
1439 msm_bedais[be_id].channel;
1440
1441 if ((msm_bedais[be_id].active) &&
1442 test_bit(fe_id,
1443 &msm_bedais[be_id].fe_sessions[0])) {
1444 unsigned long copp =
1445 session_copp_map[fe_id][sess_type][be_id];
1446 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1447 if (test_bit(j, &copp)) {
1448 copp_idx = j;
1449 break;
1450 }
1451 }
1452
1453 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1454 __func__,
1455 fe_id, be_id, msm_bedais[be_id].channel,
1456 copp_idx);
1457 ret = adm_programable_channel_mixer(
1458 msm_bedais[be_id].port_id,
1459 copp_idx, dspst_id, sess_type,
Dhanalakshmi Siddani040e0262018-11-26 23:01:26 +05301460 channel_mixer + fe_id, i,
1461 use_default_chmap, ch_map);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301462 }
1463 }
1464
1465 return ret;
1466}
1467
1468int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1469 int dspst_id, int stream_type)
1470{
1471 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1472 struct route_payload payload;
1473 u32 channels, sample_rate;
1474 uint16_t bits_per_sample = 16;
1475 uint32_t passthr_mode = LEGACY_PCM;
1476 int ret = 0;
1477
1478 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1479 /* bad ID assigned in machine driver */
1480 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1481 return -EINVAL;
1482 }
1483
1484 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1485 session_type = SESSION_TYPE_RX;
1486 path_type = ADM_PATH_PLAYBACK;
1487 port_type = MSM_AFE_PORT_TYPE_RX;
1488 } else {
1489 session_type = SESSION_TYPE_TX;
1490 path_type = ADM_PATH_LIVE_REC;
1491 port_type = MSM_AFE_PORT_TYPE_TX;
1492 }
1493
1494 mutex_lock(&routing_lock);
1495
1496 payload.num_copps = 0; /* only RX needs to use payload */
1497 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1498 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
1499
1500 /* re-enable EQ if active */
1501 msm_qti_pp_send_eq_values(fedai_id);
1502 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1503 if (!is_be_dai_extproc(i) &&
1504 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1505 (msm_bedais[i].active) &&
1506 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1507 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301508 int port_id = get_port_id(msm_bedais[i].port_id);
1509
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301510 /*
1511 * check if ADM needs to be configured with different
1512 * channel mapping than backend
1513 */
1514 if (!msm_bedais[i].adm_override_ch)
1515 channels = msm_bedais[i].channel;
1516 else
1517 channels = msm_bedais[i].adm_override_ch;
1518 msm_bedais[i].passthr_mode[fedai_id] =
1519 LEGACY_PCM;
1520
1521 bits_per_sample = msm_routing_get_bit_width(
1522 msm_bedais[i].format);
1523
1524 app_type =
1525 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1526 if (app_type) {
1527 app_type_idx =
1528 msm_pcm_routing_get_app_type_idx(app_type);
1529 sample_rate =
1530 fe_dai_app_type_cfg[fedai_id][session_type][i]
1531 .sample_rate;
1532 bits_per_sample =
1533 app_type_cfg[app_type_idx].bit_width;
1534 } else
1535 sample_rate = msm_bedais[i].sample_rate;
1536
1537 acdb_dev_id =
1538 fe_dai_app_type_cfg[fedai_id][session_type][i]
1539 .acdb_dev_id;
1540 topology = msm_routing_get_adm_topology(fedai_id,
1541 session_type,
1542 i);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301543 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301544 sample_rate, channels, topology,
1545 perf_mode, bits_per_sample,
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301546 app_type, acdb_dev_id,
1547 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301548 if ((copp_idx < 0) ||
1549 (copp_idx >= MAX_COPPS_PER_PORT)) {
1550 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Pandurangad3b58cc2017-09-27 12:17:36 -07001551 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301552 mutex_unlock(&routing_lock);
1553 return -EINVAL;
1554 }
1555 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1556 __func__, fedai_id, session_type, i);
1557 set_bit(copp_idx,
1558 &session_copp_map[fedai_id][session_type][i]);
1559
1560 if (msm_is_resample_needed(
1561 sample_rate,
1562 msm_bedais[i].sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301563 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301564 msm_bedais[i].sample_rate);
1565
1566 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1567 unsigned long copp =
1568 session_copp_map[fedai_id][session_type][i];
1569 if (test_bit(j, &copp)) {
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301570 payload.port_id[num_copps] = port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301571 payload.copp_idx[num_copps] = j;
1572 payload.app_type[num_copps] =
1573 fe_dai_app_type_cfg
1574 [fedai_id][session_type]
1575 [i].app_type;
1576 payload.acdb_dev_id[num_copps] =
1577 fe_dai_app_type_cfg
1578 [fedai_id][session_type]
1579 [i].acdb_dev_id;
1580 payload.sample_rate[num_copps] =
1581 fe_dai_app_type_cfg
1582 [fedai_id][session_type]
1583 [i].sample_rate;
1584 num_copps++;
1585 }
1586 }
1587 if ((perf_mode == LEGACY_PCM_MODE) &&
1588 (msm_bedais[i].passthr_mode[fedai_id] ==
1589 LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301590 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1591 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301592 }
1593 }
1594 if (num_copps) {
1595 payload.num_copps = num_copps;
1596 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1597 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1598 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1599 }
1600
1601 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1602 dspst_id, stream_type);
1603 mutex_unlock(&routing_lock);
1604 return ret;
1605}
1606
1607int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1608 int dspst_id, int stream_type,
1609 struct msm_pcm_routing_evt event_info)
1610{
1611 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1612 stream_type)) {
1613 pr_err("%s: failed to reg phy stream\n", __func__);
1614 return -EINVAL;
1615 }
1616
1617 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1618 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1619 else
1620 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1621 return 0;
1622}
1623
1624void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1625{
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301626 int i, port_type, session_type, path_type, topology, port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301627 struct msm_pcm_routing_fdai_data *fdai;
1628
1629 if (!is_mm_lsm_fe_id(fedai_id)) {
1630 /* bad ID assigned in machine driver */
1631 pr_err("%s: bad MM ID\n", __func__);
1632 return;
1633 }
1634
1635 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1636 port_type = MSM_AFE_PORT_TYPE_RX;
1637 session_type = SESSION_TYPE_RX;
1638 path_type = ADM_PATH_PLAYBACK;
1639 } else {
1640 port_type = MSM_AFE_PORT_TYPE_TX;
1641 session_type = SESSION_TYPE_TX;
1642 path_type = ADM_PATH_LIVE_REC;
1643 }
1644
1645 mutex_lock(&routing_lock);
1646 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1647 if (!is_be_dai_extproc(i) &&
1648 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1649 (msm_bedais[i].active) &&
1650 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1651 int idx;
1652 unsigned long copp =
1653 session_copp_map[fedai_id][session_type][i];
1654 fdai = &fe_dai_map[fedai_id][session_type];
1655
1656 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1657 if (test_bit(idx, &copp))
1658 break;
1659
1660 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1661 pr_debug("%s: copp idx is invalid, exiting\n",
1662 __func__);
1663 continue;
1664 }
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301665 port_id = get_port_id(msm_bedais[i].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301666 topology = adm_get_topology_for_port_copp_idx(
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301667 port_id, idx);
1668 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301669 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1670 __func__, copp, fedai_id, session_type, i);
1671 clear_bit(idx,
1672 &session_copp_map[fedai_id][session_type][i]);
1673 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1674 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1675 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1676 (msm_bedais[i].passthr_mode[fedai_id] ==
1677 LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301678 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301679 }
1680 }
1681
1682 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1683 fe_dai_map[fedai_id][session_type].be_srate = 0;
1684 mutex_unlock(&routing_lock);
1685}
1686
1687/* Check if FE/BE route is set */
1688static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1689{
1690 bool rc = false;
1691
1692 if (!is_mm_lsm_fe_id(fe_id)) {
1693 /* recheck FE ID in the mixer control defined in this file */
1694 pr_err("%s: bad MM ID\n", __func__);
1695 return rc;
1696 }
1697
1698 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1699 rc = true;
1700
1701 return rc;
1702}
1703
1704static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1705{
1706 int session_type, path_type, topology;
1707 u32 channels, sample_rate;
1708 uint16_t bits_per_sample = 16;
1709 struct msm_pcm_routing_fdai_data *fdai;
1710 uint32_t passthr_mode;
1711 bool is_lsm;
1712
1713 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1714
1715 if (!is_mm_lsm_fe_id(val)) {
1716 /* recheck FE ID in the mixer control defined in this file */
1717 pr_err("%s: bad MM ID\n", __func__);
1718 return;
1719 }
1720
1721 if (!route_check_fe_id_adm_support(val)) {
1722 /* ignore adm open if not supported for fe_id */
1723 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1724 return;
1725 }
1726
1727 passthr_mode = msm_bedais[reg].passthr_mode[val];
1728 if (afe_get_port_type(msm_bedais[reg].port_id) ==
1729 MSM_AFE_PORT_TYPE_RX) {
1730 session_type = SESSION_TYPE_RX;
1731 if (passthr_mode != LEGACY_PCM)
1732 path_type = ADM_PATH_COMPRESSED_RX;
1733 else
1734 path_type = ADM_PATH_PLAYBACK;
1735 } else {
1736 session_type = SESSION_TYPE_TX;
Haynes Mathew George9a277722018-01-29 17:34:49 -08001737 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301738 path_type = ADM_PATH_COMPRESSED_TX;
1739 else
1740 path_type = ADM_PATH_LIVE_REC;
1741 }
1742 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1743 (val <= MSM_FRONTEND_DAI_LSM8);
1744
1745 mutex_lock(&routing_lock);
1746 if (set) {
1747 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1748 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1749 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1750 voc_start_playback(set, msm_bedais[reg].port_id);
1751
1752 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1753 fdai = &fe_dai_map[val][session_type];
1754 if (msm_bedais[reg].active && fdai->strm_id !=
1755 INVALID_SESSION) {
1756 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301757 int port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301758 /*
1759 * check if ADM needs to be configured with different
1760 * channel mapping than backend
1761 */
1762 if (!msm_bedais[reg].adm_override_ch)
1763 channels = msm_bedais[reg].channel;
1764 else
1765 channels = msm_bedais[reg].adm_override_ch;
1766 if (session_type == SESSION_TYPE_TX &&
1767 fdai->be_srate &&
1768 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1769 pr_debug("%s: flush strm %d diff BE rates\n",
1770 __func__, fdai->strm_id);
1771
1772 if (fdai->event_info.event_func)
1773 fdai->event_info.event_func(
1774 MSM_PCM_RT_EVT_BUF_RECFG,
1775 fdai->event_info.priv_data);
1776 fdai->be_srate = 0; /* might not need it */
1777 }
1778
1779 bits_per_sample = msm_routing_get_bit_width(
1780 msm_bedais[reg].format);
1781
1782 app_type =
1783 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1784 if (app_type && is_lsm) {
1785 app_type_idx =
1786 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1787 sample_rate =
1788 fe_dai_app_type_cfg[val][session_type][reg]
1789 .sample_rate;
1790 bits_per_sample =
1791 lsm_app_type_cfg[app_type_idx].bit_width;
1792 } else if (app_type) {
1793 app_type_idx =
1794 msm_pcm_routing_get_app_type_idx(app_type);
1795 sample_rate =
1796 fe_dai_app_type_cfg[val][session_type][reg]
1797 .sample_rate;
1798 bits_per_sample =
1799 app_type_cfg[app_type_idx].bit_width;
1800 } else
1801 sample_rate = msm_bedais[reg].sample_rate;
1802
1803 topology = msm_routing_get_adm_topology(val,
1804 session_type,
1805 reg);
1806 acdb_dev_id =
1807 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301808 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301809 sample_rate, channels, topology,
1810 fdai->perf_mode, bits_per_sample,
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301811 app_type, acdb_dev_id,
1812 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301813 if ((copp_idx < 0) ||
1814 (copp_idx >= MAX_COPPS_PER_PORT)) {
1815 pr_err("%s: adm open failed\n", __func__);
1816 mutex_unlock(&routing_lock);
1817 return;
1818 }
1819 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1820 __func__, val, session_type, reg);
1821 set_bit(copp_idx,
1822 &session_copp_map[val][session_type][reg]);
1823
1824 if (msm_is_resample_needed(
1825 sample_rate,
1826 msm_bedais[reg].sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301827 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301828 msm_bedais[reg].sample_rate);
1829
1830 if (session_type == SESSION_TYPE_RX &&
1831 fdai->event_info.event_func)
1832 fdai->event_info.event_func(
1833 MSM_PCM_RT_EVT_DEVSWITCH,
1834 fdai->event_info.priv_data);
1835
1836 msm_pcm_routing_build_matrix(val, session_type,
1837 path_type,
1838 fdai->perf_mode,
1839 passthr_mode);
1840 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1841 (passthr_mode == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301842 msm_pcm_routing_cfg_pp(port_id, copp_idx,
1843 topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301844 }
1845 } else {
1846 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1847 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1848 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1849 voc_start_playback(set, msm_bedais[reg].port_id);
1850 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1851 fdai = &fe_dai_map[val][session_type];
1852 if (msm_bedais[reg].active && fdai->strm_id !=
1853 INVALID_SESSION) {
1854 int idx;
1855 int port_id;
1856 unsigned long copp =
1857 session_copp_map[val][session_type][reg];
1858 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1859 if (test_bit(idx, &copp))
1860 break;
1861
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301862 port_id = get_port_id(msm_bedais[reg].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301863 topology = adm_get_topology_for_port_copp_idx(port_id,
1864 idx);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301865 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301866 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1867 __func__, copp, val, session_type, reg,
1868 topology);
1869 clear_bit(idx,
1870 &session_copp_map[val][session_type][reg]);
1871 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1872 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1873 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1874 (passthr_mode == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05301875 msm_pcm_routing_deinit_pp(port_id, topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301876 msm_pcm_routing_build_matrix(val, session_type,
1877 path_type,
1878 fdai->perf_mode,
1879 passthr_mode);
1880 }
1881 }
1882 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1883 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1884 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1885
1886 mutex_unlock(&routing_lock);
1887}
1888
1889static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1890 struct snd_ctl_elem_value *ucontrol)
1891{
1892 struct soc_mixer_control *mc =
1893 (struct soc_mixer_control *)kcontrol->private_value;
1894
Meng Wang007346c2019-10-16 12:52:13 +05301895 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301896 ucontrol->value.integer.value[0] = 1;
1897 else
1898 ucontrol->value.integer.value[0] = 0;
1899
Meng Wang007346c2019-10-16 12:52:13 +05301900 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
1901 mc->shift, mc->rshift,
1902 ucontrol->value.integer.value[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301903
1904 return 0;
1905}
1906
1907static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1908 struct snd_ctl_elem_value *ucontrol)
1909{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301910 struct snd_soc_dapm_widget *widget =
1911 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301912 struct soc_mixer_control *mc =
1913 (struct soc_mixer_control *)kcontrol->private_value;
1914 struct snd_soc_dapm_update *update = NULL;
1915
1916 if (ucontrol->value.integer.value[0] &&
Meng Wang007346c2019-10-16 12:52:13 +05301917 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1918 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301919 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1920 update);
1921 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang007346c2019-10-16 12:52:13 +05301922 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1923 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301924 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1925 update);
1926 }
1927
1928 return 1;
1929}
1930
1931static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
1932 struct snd_ctl_elem_value *ucontrol)
1933{
1934 struct soc_mixer_control *mc =
1935 (struct soc_mixer_control *)kcontrol->private_value;
1936
Meng Wang007346c2019-10-16 12:52:13 +05301937 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301938 ucontrol->value.integer.value[0] = 1;
1939 else
1940 ucontrol->value.integer.value[0] = 0;
1941
Meng Wang007346c2019-10-16 12:52:13 +05301942 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
1943 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301944 ucontrol->value.integer.value[0]);
1945
1946 return 0;
1947}
1948
1949static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
1950 struct snd_ctl_elem_value *ucontrol)
1951{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301952 struct snd_soc_dapm_widget *widget =
1953 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301954 struct soc_mixer_control *mc =
1955 (struct soc_mixer_control *)kcontrol->private_value;
1956 struct snd_soc_dapm_update *update = NULL;
1957
Meng Wang007346c2019-10-16 12:52:13 +05301958 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
1959 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301960 ucontrol->value.integer.value[0]);
1961
1962 if (ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05301963 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift)
1964 == false)
1965 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301966 snd_soc_dapm_mixer_update_power(widget->dapm,
1967 kcontrol, 1, update);
1968 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05301969 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift)
1970 == true)
1971 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301972 snd_soc_dapm_mixer_update_power(widget->dapm,
1973 kcontrol, 0, update);
1974 }
1975
1976 return 1;
1977}
1978
1979static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
1980{
1981 u32 session_id = 0;
1982 u16 path_type;
1983 struct media_format_info voc_be_media_format;
1984
1985 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1986
1987 session_id = msm_pcm_routing_get_voc_sessionid(val);
1988
1989 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
1990 __func__, val, session_id);
1991
1992 mutex_lock(&routing_lock);
1993
1994 if (set)
1995 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
1996 else
1997 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
1998
1999 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2000 afe_get_port_type(msm_bedais[reg].port_id) ==
2001 MSM_AFE_PORT_TYPE_RX) {
2002 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2003 __func__, set, msm_bedais[reg].port_id);
2004 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2005 }
2006
2007 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2008 MSM_AFE_PORT_TYPE_RX)
2009 path_type = RX_PATH;
2010 else
2011 path_type = TX_PATH;
2012
2013 if (set) {
2014 if (msm_bedais[reg].active) {
2015 voc_set_route_flag(session_id, path_type, 1);
2016
2017 memset(&voc_be_media_format, 0,
2018 sizeof(struct media_format_info));
2019
2020 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2021 voc_be_media_format.num_channels =
2022 msm_bedais[reg].channel;
2023 voc_be_media_format.sample_rate =
2024 msm_bedais[reg].sample_rate;
2025 voc_be_media_format.bits_per_sample =
2026 msm_bedais[reg].format;
2027 /* Defaulting this to 1 for voice call usecases */
2028 voc_be_media_format.channel_mapping[0] = 1;
2029
2030 voc_set_device_config(session_id, path_type,
2031 &voc_be_media_format);
2032
2033 if (voc_get_route_flag(session_id, TX_PATH) &&
2034 voc_get_route_flag(session_id, RX_PATH))
2035 voc_enable_device(session_id);
2036 } else {
2037 pr_debug("%s BE is not active\n", __func__);
2038 }
2039 } else {
2040 voc_set_route_flag(session_id, path_type, 0);
2041 voc_disable_device(session_id);
2042 }
2043
2044 mutex_unlock(&routing_lock);
2045
2046}
2047
2048static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2049 struct snd_ctl_elem_value *ucontrol)
2050{
2051 struct soc_mixer_control *mc =
2052 (struct soc_mixer_control *)kcontrol->private_value;
2053
2054 mutex_lock(&routing_lock);
2055
Meng Wang007346c2019-10-16 12:52:13 +05302056 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302057 ucontrol->value.integer.value[0] = 1;
2058 else
2059 ucontrol->value.integer.value[0] = 0;
2060
2061 mutex_unlock(&routing_lock);
2062
Meng Wang007346c2019-10-16 12:52:13 +05302063 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2064 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302065 ucontrol->value.integer.value[0]);
2066
2067 return 0;
2068}
2069
2070static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2071 struct snd_ctl_elem_value *ucontrol)
2072{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302073 struct snd_soc_dapm_widget *widget =
2074 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302075 struct soc_mixer_control *mc =
2076 (struct soc_mixer_control *)kcontrol->private_value;
2077 struct snd_soc_dapm_update *update = NULL;
2078
2079 if (ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05302080 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302081 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2082 update);
2083 } else {
Meng Wang007346c2019-10-16 12:52:13 +05302084 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302085 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2086 update);
2087 }
2088
2089 return 1;
2090}
2091
2092static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2093 struct snd_ctl_elem_value *ucontrol)
2094{
2095 struct soc_mixer_control *mc =
2096 (struct soc_mixer_control *)kcontrol->private_value;
2097
2098 mutex_lock(&routing_lock);
2099
Meng Wang007346c2019-10-16 12:52:13 +05302100 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302101 ucontrol->value.integer.value[0] = 1;
2102 else
2103 ucontrol->value.integer.value[0] = 0;
2104
2105 mutex_unlock(&routing_lock);
2106
Meng Wang007346c2019-10-16 12:52:13 +05302107 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2108 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302109 ucontrol->value.integer.value[0]);
2110
2111 return 0;
2112}
2113
2114static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2115 struct snd_ctl_elem_value *ucontrol)
2116{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302117 struct snd_soc_dapm_widget *widget =
2118 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302119 struct soc_mixer_control *mc =
2120 (struct soc_mixer_control *)kcontrol->private_value;
2121 struct snd_soc_dapm_update *update = NULL;
2122
2123 if (ucontrol->value.integer.value[0]) {
2124 mutex_lock(&routing_lock);
Meng Wang007346c2019-10-16 12:52:13 +05302125 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302126 mutex_unlock(&routing_lock);
2127
2128 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2129 update);
2130 } else {
2131 mutex_lock(&routing_lock);
Meng Wang007346c2019-10-16 12:52:13 +05302132 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302133 mutex_unlock(&routing_lock);
2134
2135 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2136 update);
2137 }
2138
Meng Wang007346c2019-10-16 12:52:13 +05302139 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2140 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302141 ucontrol->value.integer.value[0]);
2142
2143 return 1;
2144}
2145
2146/*
2147 * Return the mapping between port ID and backend ID to enable the AFE callback
2148 * to determine the acdb_dev_id from the port id
2149 */
2150int msm_pcm_get_be_id_from_port_id(int port_id)
2151{
2152 int i;
2153 int be_id = -EINVAL;
2154
2155 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2156 if (msm_bedais[i].port_id == port_id) {
2157 be_id = i;
2158 break;
2159 }
2160 }
2161
2162 return be_id;
2163}
2164
2165/*
2166 * Return the registered dev_acdb_id given a port ID to enable identifying the
2167 * correct AFE calibration information by comparing the header information.
2168 */
2169static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2170{
2171 int acdb_id = -EINVAL;
2172 int i = 0;
2173 int session;
2174 int port_type = afe_get_port_type(port_id);
2175 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2176
2177 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2178 __func__, port_id, be_id, port_type);
2179
2180 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2181 session = SESSION_TYPE_TX;
2182 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2183 session = SESSION_TYPE_RX;
2184 } else {
2185 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2186 acdb_id = -EINVAL;
2187 goto exit;
2188 }
2189
2190 if (be_id < 0) {
2191 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2192 goto exit;
2193 }
2194
2195 mutex_lock(&routing_lock);
2196 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2197 MSM_FRONTEND_DAI_MAX);
2198 if (i < MSM_FRONTEND_DAI_MAX)
2199 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2200
2201 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2202 __func__, i, session, be_id, acdb_id);
2203 mutex_unlock(&routing_lock);
2204exit:
2205 return acdb_id;
2206}
2207
2208static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2209 struct snd_ctl_elem_value *ucontrol)
2210{
2211 ucontrol->value.integer.value[0] = fm_switch_enable;
2212 pr_debug("%s: FM Switch enable %ld\n", __func__,
2213 ucontrol->value.integer.value[0]);
2214 return 0;
2215}
2216
2217static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2218 struct snd_ctl_elem_value *ucontrol)
2219{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302220 struct snd_soc_dapm_widget *widget =
2221 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302222 struct snd_soc_dapm_update *update = NULL;
2223
2224 pr_debug("%s: FM Switch enable %ld\n", __func__,
2225 ucontrol->value.integer.value[0]);
2226 if (ucontrol->value.integer.value[0])
2227 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2228 update);
2229 else
2230 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2231 update);
2232 fm_switch_enable = ucontrol->value.integer.value[0];
2233 return 1;
2234}
2235
2236static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2237 struct snd_ctl_elem_value *ucontrol)
2238{
2239 ucontrol->value.integer.value[0] = hfp_switch_enable;
2240 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2241 ucontrol->value.integer.value[0]);
2242 return 0;
2243}
2244
2245static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2246 struct snd_ctl_elem_value *ucontrol)
2247{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302248 struct snd_soc_dapm_widget *widget =
2249 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302250 struct snd_soc_dapm_update *update = NULL;
2251
2252 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2253 ucontrol->value.integer.value[0]);
2254 if (ucontrol->value.integer.value[0])
2255 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2256 1, update);
2257 else
2258 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2259 0, update);
2260 hfp_switch_enable = ucontrol->value.integer.value[0];
2261 return 1;
2262}
2263
Aniket Kumar Lataf8664712018-02-22 14:46:09 -08002264static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2265 struct snd_ctl_elem_value *ucontrol)
2266{
2267 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2268 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2269 ucontrol->value.integer.value[0]);
2270 return 0;
2271}
2272
2273static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2274 struct snd_ctl_elem_value *ucontrol)
2275{
2276 struct snd_soc_dapm_widget *widget =
2277 snd_soc_dapm_kcontrol_widget(kcontrol);
2278 struct snd_soc_dapm_update *update = NULL;
2279
2280 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2281 ucontrol->value.integer.value[0]);
2282 a2dp_switch_enable = ucontrol->value.integer.value[0];
2283 if (a2dp_switch_enable)
2284 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2285 1, update);
2286 else
2287 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2288 0, update);
2289 return 1;
2290}
2291
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302292static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2293 struct snd_ctl_elem_value *ucontrol)
2294{
2295 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2296 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2297 ucontrol->value.integer.value[0]);
2298 return 0;
2299}
2300
2301static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2302 struct snd_ctl_elem_value *ucontrol)
2303{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302304 struct snd_soc_dapm_widget *widget =
2305 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302306 struct snd_soc_dapm_update *update = NULL;
2307
2308 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2309 ucontrol->value.integer.value[0]);
2310 if (ucontrol->value.integer.value[0])
2311 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2312 update);
2313 else
2314 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2315 update);
2316 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2317 return 1;
2318}
2319
2320static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2321 struct snd_ctl_elem_value *ucontrol)
2322{
2323 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2324 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2325 ucontrol->value.integer.value[0]);
2326 return 0;
2327}
2328
2329static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2330 struct snd_ctl_elem_value *ucontrol)
2331{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302332 struct snd_soc_dapm_widget *widget =
2333 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302334 struct snd_soc_dapm_update *update = NULL;
2335
2336 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2337 ucontrol->value.integer.value[0]);
2338 if (ucontrol->value.integer.value[0])
2339 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2340 update);
2341 else
2342 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2343 update);
2344 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2345 return 1;
2346}
2347
2348static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2349 struct snd_ctl_elem_value *ucontrol)
2350{
2351 ucontrol->value.integer.value[0] = usb_switch_enable;
2352 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2353 ucontrol->value.integer.value[0]);
2354 return 0;
2355}
2356
2357static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2358 struct snd_ctl_elem_value *ucontrol)
2359{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302360 struct snd_soc_dapm_widget *widget =
2361 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302362 struct snd_soc_dapm_update *update = NULL;
2363
2364 pr_debug("%s: USB Switch enable %ld\n", __func__,
2365 ucontrol->value.integer.value[0]);
2366 if (ucontrol->value.integer.value[0])
2367 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2368 1, update);
2369 else
2370 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2371 0, update);
2372 usb_switch_enable = ucontrol->value.integer.value[0];
2373 return 1;
2374}
2375
2376static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2377 struct snd_ctl_elem_value *ucontrol)
2378{
2379 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2380 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2381 ucontrol->value.integer.value[0]);
2382 return 0;
2383}
2384
2385static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2386 struct snd_ctl_elem_value *ucontrol)
2387{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302388 struct snd_soc_dapm_widget *widget =
2389 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302390 struct snd_soc_dapm_update *update = NULL;
2391
2392 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2393 ucontrol->value.integer.value[0]);
2394 if (ucontrol->value.integer.value[0])
2395 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2396 update);
2397 else
2398 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2399 update);
2400 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2401 return 1;
2402}
2403
2404static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2405 struct snd_ctl_elem_value *ucontrol)
2406{
2407 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2408 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2409 ucontrol->value.integer.value[0]);
2410 return 0;
2411}
2412
2413static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2414 struct snd_ctl_elem_value *ucontrol)
2415{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302416 struct snd_soc_dapm_widget *widget =
2417 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302418 struct snd_soc_dapm_update *update = NULL;
2419
2420 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2421 ucontrol->value.integer.value[0]);
2422 if (ucontrol->value.integer.value[0])
2423 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2424 update);
2425 else
2426 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2427 update);
2428 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2429 return 1;
2430}
2431
2432static int msm_routing_get_tert_mi2s_switch_mixer(
2433 struct snd_kcontrol *kcontrol,
2434 struct snd_ctl_elem_value *ucontrol)
2435{
2436 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2437 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2438 ucontrol->value.integer.value[0]);
2439 return 0;
2440}
2441
2442static int msm_routing_put_tert_mi2s_switch_mixer(
2443 struct snd_kcontrol *kcontrol,
2444 struct snd_ctl_elem_value *ucontrol)
2445{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302446 struct snd_soc_dapm_widget *widget =
2447 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302448 struct snd_soc_dapm_update *update = NULL;
2449
2450 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2451 ucontrol->value.integer.value[0]);
2452 if (ucontrol->value.integer.value[0])
2453 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2454 update);
2455 else
2456 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2457 update);
2458 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2459 return 1;
2460}
2461
2462static int msm_routing_get_quat_mi2s_switch_mixer(
2463 struct snd_kcontrol *kcontrol,
2464 struct snd_ctl_elem_value *ucontrol)
2465{
2466 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2467 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2468 ucontrol->value.integer.value[0]);
2469 return 0;
2470}
2471
2472static int msm_routing_put_quat_mi2s_switch_mixer(
2473 struct snd_kcontrol *kcontrol,
2474 struct snd_ctl_elem_value *ucontrol)
2475{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302476 struct snd_soc_dapm_widget *widget =
2477 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302478 struct snd_soc_dapm_update *update = NULL;
2479
2480 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2481 ucontrol->value.integer.value[0]);
2482 if (ucontrol->value.integer.value[0])
2483 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2484 update);
2485 else
2486 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2487 update);
2488 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2489 return 1;
2490}
2491
Rohit Kumara5077932017-09-10 22:05:05 +05302492static int msm_routing_get_quin_mi2s_switch_mixer(
2493 struct snd_kcontrol *kcontrol,
2494 struct snd_ctl_elem_value *ucontrol)
2495{
2496 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2497 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2498 ucontrol->value.integer.value[0]);
2499 return 0;
2500}
2501
2502static int msm_routing_put_quin_mi2s_switch_mixer(
2503 struct snd_kcontrol *kcontrol,
2504 struct snd_ctl_elem_value *ucontrol)
2505{
2506 struct snd_soc_dapm_widget *widget =
2507 snd_soc_dapm_kcontrol_widget(kcontrol);
2508 struct snd_soc_dapm_update *update = NULL;
2509
2510 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2511 ucontrol->value.integer.value[0]);
2512 if (ucontrol->value.integer.value[0])
2513 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2514 update);
2515 else
2516 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2517 update);
2518 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2519 return 1;
2520}
2521
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302522static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2523 struct snd_ctl_elem_value *ucontrol)
2524{
2525 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2526 pr_debug("%s: FM Switch enable %ld\n", __func__,
2527 ucontrol->value.integer.value[0]);
2528 return 0;
2529}
2530
2531static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2532 struct snd_ctl_elem_value *ucontrol)
2533{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302534 struct snd_soc_dapm_widget *widget =
2535 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302536 struct snd_soc_dapm_update *update = NULL;
2537
2538 pr_debug("%s: FM Switch enable %ld\n", __func__,
2539 ucontrol->value.integer.value[0]);
2540 if (ucontrol->value.integer.value[0])
2541 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2542 update);
2543 else
2544 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2545 update);
2546 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2547 return 1;
2548}
2549
2550static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2551 struct snd_ctl_elem_value *ucontrol)
2552{
2553 ucontrol->value.integer.value[0] = lsm_port_index;
2554 return 0;
2555}
2556
2557static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2558 struct snd_ctl_elem_value *ucontrol)
2559{
2560 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2561 int mux = ucontrol->value.enumerated.item[0];
2562 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2563
2564 if (mux >= e->items) {
2565 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2566 return -EINVAL;
2567 }
2568
2569 pr_debug("%s: LSM enable %ld\n", __func__,
2570 ucontrol->value.integer.value[0]);
2571 switch (ucontrol->value.integer.value[0]) {
2572 case 1:
2573 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2574 break;
2575 case 2:
2576 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2577 break;
2578 case 3:
2579 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2580 break;
2581 case 4:
2582 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2583 break;
2584 case 5:
2585 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2586 break;
2587 case 6:
2588 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2589 break;
2590 case 7:
2591 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2592 break;
2593 case 8:
2594 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2595 break;
2596 case 9:
2597 lsm_port = ADM_LSM_PORT_ID;
2598 break;
2599 case 10:
Revathi Uddarajue990e322018-07-04 15:30:19 +05302600 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
Ashish Jain01b10322018-05-12 15:37:44 +05302601 break;
2602 case 11:
Revathi Uddarajue990e322018-07-04 15:30:19 +05302603 lsm_port = AFE_PORT_ID_PRIMARY_TDM_TX_2;
Ashish Jain01b10322018-05-12 15:37:44 +05302604 break;
2605 case 12:
Revathi Uddarajue990e322018-07-04 15:30:19 +05302606 lsm_port = AFE_PORT_ID_PRIMARY_TDM_TX_3;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302607 break;
2608 default:
2609 pr_err("Default lsm port");
2610 break;
2611 }
2612 set_lsm_port(lsm_port);
2613 lsm_port_index = ucontrol->value.integer.value[0];
2614
2615 return 0;
2616}
2617
2618static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2619 struct snd_ctl_elem_value *ucontrol)
2620{
2621 int i;
2622 u16 port_id;
2623 enum afe_mad_type mad_type;
2624
2625 pr_debug("%s: enter\n", __func__);
2626 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2627 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2628 strlen(lsm_port_text[i])))
2629 break;
2630
2631 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2632 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2633 return -EINVAL;
2634 }
2635
2636 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2637
2638 /*Check for Tertiary/Quaternary/INT3 TX port*/
2639 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2640 strlen(lsm_port_text[7])))
2641 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2642
2643 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2644 strlen(lsm_port_text[8])))
2645 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2646
2647 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2648 strlen(lsm_port_text[10])))
2649 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2650
2651 mad_type = afe_port_get_mad_type(port_id);
2652 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2653 mad_type);
2654 switch (mad_type) {
2655 case MAD_HW_NONE:
2656 ucontrol->value.integer.value[0] = MADNONE;
2657 break;
2658 case MAD_HW_AUDIO:
2659 ucontrol->value.integer.value[0] = MADAUDIO;
2660 break;
2661 case MAD_HW_BEACON:
2662 ucontrol->value.integer.value[0] = MADBEACON;
2663 break;
2664 case MAD_HW_ULTRASOUND:
2665 ucontrol->value.integer.value[0] = MADULTRASOUND;
2666 break;
2667 case MAD_SW_AUDIO:
2668 ucontrol->value.integer.value[0] = MADSWAUDIO;
2669 break;
2670 default:
2671 WARN(1, "Unknown\n");
2672 return -EINVAL;
2673 }
2674 return 0;
2675}
2676
2677static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2678 struct snd_ctl_elem_value *ucontrol)
2679{
2680 int i;
2681 u16 port_id;
2682 enum afe_mad_type mad_type;
2683
2684 pr_debug("%s: enter\n", __func__);
2685 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2686 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2687 strlen(lsm_port_text[i])))
2688 break;
2689
2690 if (i-- == ARRAY_SIZE(lsm_port_text)) {
2691 WARN(1, "Invalid id name %s\n", kcontrol->id.name);
2692 return -EINVAL;
2693 }
2694
2695 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2696 switch (ucontrol->value.integer.value[0]) {
2697 case MADNONE:
2698 mad_type = MAD_HW_NONE;
2699 break;
2700 case MADAUDIO:
2701 mad_type = MAD_HW_AUDIO;
2702 break;
2703 case MADBEACON:
2704 mad_type = MAD_HW_BEACON;
2705 break;
2706 case MADULTRASOUND:
2707 mad_type = MAD_HW_ULTRASOUND;
2708 break;
2709 case MADSWAUDIO:
2710 mad_type = MAD_SW_AUDIO;
2711 break;
2712 default:
2713 WARN(1, "Unknown\n");
2714 return -EINVAL;
2715 }
2716
2717 /*Check for Tertiary/Quaternary/INT3 TX port*/
2718 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2719 strlen(lsm_port_text[7])))
2720 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2721
2722 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2723 strlen(lsm_port_text[8])))
2724 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2725
2726 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2727 strlen(lsm_port_text[10])))
2728 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2729
2730 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2731 mad_type);
2732 return afe_port_set_mad_type(port_id, mad_type);
2733}
2734
2735static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2736
2737static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2738 adm_override_chs_text);
2739
2740static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2741{
2742 int backend_id;
2743
2744 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2745 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2746 } else {
2747 pr_err("%s: unsupported backend id: %s",
2748 __func__, kcontrol->id.name);
2749 return -EINVAL;
2750 }
2751
2752 return backend_id;
2753}
2754static int msm_routing_adm_channel_config_get(
2755 struct snd_kcontrol *kcontrol,
2756 struct snd_ctl_elem_value *ucontrol)
2757{
2758 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2759
2760 if (backend_id >= 0) {
2761 mutex_lock(&routing_lock);
2762 ucontrol->value.integer.value[0] =
2763 msm_bedais[backend_id].adm_override_ch;
2764 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2765 ucontrol->value.integer.value[0], backend_id);
2766 mutex_unlock(&routing_lock);
2767 }
2768
2769 return 0;
2770}
2771
2772static int msm_routing_adm_channel_config_put(
2773 struct snd_kcontrol *kcontrol,
2774 struct snd_ctl_elem_value *ucontrol)
2775{
2776 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2777
2778 if (backend_id >= 0) {
2779 mutex_lock(&routing_lock);
2780 msm_bedais[backend_id].adm_override_ch =
2781 ucontrol->value.integer.value[0];
2782 pr_debug("%s:updating BE :%d adm channels: %d\n",
2783 __func__, backend_id,
2784 msm_bedais[backend_id].adm_override_ch);
2785 mutex_unlock(&routing_lock);
2786 }
2787
2788 return 0;
2789}
2790
2791static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2792 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2793 msm_routing_adm_channel_config_get,
2794 msm_routing_adm_channel_config_put),
2795};
2796
2797static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2798 struct snd_ctl_elem_value *ucontrol)
2799{
2800
2801 mutex_lock(&routing_lock);
2802 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2803 mutex_unlock(&routing_lock);
2804 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2805 ucontrol->value.integer.value[0]);
2806 return 0;
2807};
2808
2809static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2810 struct snd_ctl_elem_value *ucontrol)
2811{
2812 struct aanc_data aanc_info;
2813
2814 mutex_lock(&routing_lock);
2815 memset(&aanc_info, 0x00, sizeof(aanc_info));
2816 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2817 ucontrol->value.integer.value[0]);
2818 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2819 if (ucontrol->value.integer.value[0] == 0) {
2820 aanc_info.aanc_active = false;
2821 aanc_info.aanc_tx_port = 0;
2822 aanc_info.aanc_rx_port = 0;
2823 } else {
2824 aanc_info.aanc_active = true;
2825 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2826 aanc_info.aanc_tx_port =
2827 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2828 }
2829 afe_set_aanc_info(&aanc_info);
2830 mutex_unlock(&routing_lock);
2831 return 0;
2832};
2833static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2834 struct snd_ctl_elem_value *ucontrol)
2835{
2836 int idx = 0, shift = 0;
2837 struct soc_mixer_control *mc =
2838 (struct soc_mixer_control *)kcontrol->private_value;
2839
Meng Wang007346c2019-10-16 12:52:13 +05302840 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2841 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302842
2843 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2844 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2845 return -EINVAL;
2846 }
2847
2848 if (test_bit(shift,
Meng Wang007346c2019-10-16 12:52:13 +05302849 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302850 ucontrol->value.integer.value[0] = 1;
2851 else
2852 ucontrol->value.integer.value[0] = 0;
2853
Meng Wang007346c2019-10-16 12:52:13 +05302854 pr_debug("%s: shift %x rshift %x val %ld\n", __func__,
2855 mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302856 ucontrol->value.integer.value[0]);
2857
2858 return 0;
2859}
2860
2861static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2862 struct snd_ctl_elem_value *ucontrol)
2863{
2864 int idx = 0, shift = 0;
2865 struct soc_mixer_control *mc =
2866 (struct soc_mixer_control *)kcontrol->private_value;
2867
Meng Wang007346c2019-10-16 12:52:13 +05302868 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2869 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302870
2871 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2872 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2873 return -EINVAL;
2874 }
2875
Meng Wang007346c2019-10-16 12:52:13 +05302876 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2877 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302878 ucontrol->value.integer.value[0], idx, shift);
2879
2880 if (ucontrol->value.integer.value[0]) {
Meng Wang007346c2019-10-16 12:52:13 +05302881 afe_loopback(1, msm_bedais[mc->shift].port_id,
2882 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302883 set_bit(shift,
Meng Wang007346c2019-10-16 12:52:13 +05302884 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302885 } else {
Meng Wang007346c2019-10-16 12:52:13 +05302886 afe_loopback(0, msm_bedais[mc->shift].port_id,
2887 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302888 clear_bit(shift,
Meng Wang007346c2019-10-16 12:52:13 +05302889 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302890 }
2891
2892 return 1;
2893}
2894
2895static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2896 struct snd_ctl_elem_value *ucontrol)
2897{
2898 u16 fe_id = 0;
2899
2900 fe_id = ((struct soc_mixer_control *)
2901 kcontrol->private_value)->shift;
2902 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2903 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2904 return -EINVAL;
2905 }
2906
2907 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2908
2909 return 0;
2910}
2911
2912static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
2913 struct snd_ctl_elem_value *ucontrol)
2914{
2915 u16 fe_id = 0;
2916
2917 fe_id = ((struct soc_mixer_control *)
2918 kcontrol->private_value)->shift;
2919 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2920 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2921 return -EINVAL;
2922 }
2923
2924 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
2925
2926 return 1;
2927}
2928
2929static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
2930 struct snd_ctl_elem_value *ucontrol)
2931{
2932 u16 fe_id = 0;
2933
2934 fe_id = ((struct soc_multi_mixer_control *)
2935 kcontrol->private_value)->shift;
2936 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2937 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2938 return -EINVAL;
2939 }
2940
2941 ucontrol->value.integer.value[0] =
2942 channel_mixer[fe_id].output_channel;
2943 return 0;
2944}
2945
2946static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
2947 struct snd_ctl_elem_value *ucontrol)
2948{
2949 u16 fe_id = 0;
2950
2951 fe_id = ((struct soc_multi_mixer_control *)
2952 kcontrol->private_value)->shift;
2953 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2954 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2955 return -EINVAL;
2956 }
2957
2958 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
2959 fe_id,
2960 (unsigned int)(ucontrol->value.integer.value[0]));
2961 channel_mixer[fe_id].output_channel =
2962 (unsigned int)(ucontrol->value.integer.value[0]);
2963
2964 return 1;
2965}
2966
2967static const char *const ch_mixer[] = {"Disable", "Enable"};
2968
2969/* If new backend is added, need update this array */
2970static const char *const be_name[] = {
2971"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
2972"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
2973"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
2974"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
2975"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
2976"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
2977"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
2978"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
2979"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
2980"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
2981"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
2982"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
2983"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "SPDIF_RX",
2984"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
2985"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
2986"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
2987"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
2988"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
2989"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
2990"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
2991"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
2992"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
2993"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
2994"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
2995"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
2996"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
2997"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
2998"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
2999"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3000"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303001"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3002"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3003"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3004"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303005"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
3006"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303007"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303008"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3009"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3010"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
3011"INT6_MI2S_RX", "INT6_MI2S_TX"
3012};
3013
3014static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3015 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3016static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3017 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3018static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3019 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3020static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3021 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3022
3023static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3024 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3025static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3026 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3027static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3028 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3029static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3030 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3031static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3032 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3033static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3034 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3035static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3036 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3037static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3038 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3039
3040static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3041 unsigned int channels,
3042 unsigned int items, const char *const names[])
3043{
3044 if (uinfo->value.enumerated.item >= items)
3045 uinfo->value.enumerated.item = items - 1;
3046
3047 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3048 sizeof(uinfo->value.enumerated.name),
3049 "ALSA: too long item name '%s'\n",
3050 names[uinfo->value.enumerated.item]);
3051 strlcpy(uinfo->value.enumerated.name,
3052 names[uinfo->value.enumerated.item],
3053 sizeof(uinfo->value.enumerated.name));
3054 return 0;
3055}
3056
3057static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3058 struct snd_ctl_elem_info *uinfo)
3059{
3060 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3061
3062 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3063 uinfo->count = 1;
3064
3065 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3066 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3067
3068 return 0;
3069}
3070static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3071 struct snd_ctl_elem_value *ucontrol)
3072{
3073 u16 fe_id = 0;
3074
3075 fe_id = ((struct soc_enum *)
3076 kcontrol->private_value)->shift_l;
3077 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3078 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3079 return -EINVAL;
3080 }
3081
3082 pr_debug("%s: FE %d %s\n", __func__,
3083 fe_id,
3084 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3085 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3086 return 0;
3087}
3088
3089static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3090 struct snd_ctl_elem_value *ucontrol)
3091{
3092 u16 fe_id = 0;
3093
3094 fe_id = ((struct soc_enum *)
3095 kcontrol->private_value)->shift_l;
3096 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3097 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3098 return -EINVAL;
3099 }
3100
3101 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3102 pr_debug("%s: %s FE %d\n", __func__,
3103 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3104 fe_id);
3105 return 0;
3106}
3107
3108static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3109 struct snd_ctl_elem_info *uinfo)
3110{
3111 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3112
3113 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3114 uinfo->count = 1;
3115
3116 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3117 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3118
3119 return 0;
3120}
3121
3122static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3123 struct snd_ctl_elem_value *ucontrol)
3124{
3125 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3126 u16 fe_id = 0, in_ch = 0;
3127
3128 fe_id = e->shift_l;
3129 in_ch = e->shift_r;
3130 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3131 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3132 return -EINVAL;
3133 }
3134 if (in_ch >= ADM_MAX_CHANNELS) {
3135 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3136 return -EINVAL;
3137 }
3138
3139 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3140 return 1;
3141}
3142
3143static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3144 struct snd_ctl_elem_value *ucontrol)
3145{
3146 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3147 u16 fe_id = 0, in_ch = 0;
3148
3149 fe_id = e->shift_l;
3150 in_ch = e->shift_r;
3151 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3152 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3153 return -EINVAL;
3154 }
3155 if (in_ch >= ADM_MAX_CHANNELS) {
3156 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3157 return -EINVAL;
3158 }
3159
3160 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3161 return 1;
3162}
3163
3164
3165static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3166 struct snd_ctl_elem_info *uinfo)
3167{
3168 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3169 uinfo->count = ADM_MAX_CHANNELS;
3170 uinfo->value.integer.min = 0;
3171 uinfo->value.integer.max = WEIGHT_0_DB;
3172
3173 return 0;
3174}
3175
3176static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3177 struct snd_ctl_elem_value *ucontrol)
3178{
3179 u16 fe_id = 0, out_ch = 0;
3180 int i, weight;
3181
3182 fe_id = ((struct soc_multi_mixer_control *)
3183 kcontrol->private_value)->shift;
3184 out_ch = ((struct soc_multi_mixer_control *)
3185 kcontrol->private_value)->rshift;
3186 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3187 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3188 return -EINVAL;
3189 }
3190 if (out_ch >= ADM_MAX_CHANNELS) {
3191 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3192 return -EINVAL;
3193 }
3194
3195 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3196 __func__, fe_id,
3197 ucontrol->value.integer.value[0],
3198 ucontrol->value.integer.value[1],
3199 ucontrol->value.integer.value[2],
3200 ucontrol->value.integer.value[3],
3201 ucontrol->value.integer.value[4],
3202 ucontrol->value.integer.value[5],
3203 ucontrol->value.integer.value[6],
3204 ucontrol->value.integer.value[7]);
3205
3206 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3207 weight = ucontrol->value.integer.value[i];
3208 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3209 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3210 __func__, fe_id, out_ch, i,
3211 channel_mixer[fe_id].channel_weight[out_ch][i]);
3212 }
3213
3214 return 0;
3215}
3216
3217static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3218 struct snd_ctl_elem_value *ucontrol)
3219{
3220 u16 fe_id = 0, out_ch = 0;
3221 int i;
3222
3223 fe_id = ((struct soc_multi_mixer_control *)
3224 kcontrol->private_value)->shift;
3225 out_ch = ((struct soc_multi_mixer_control *)
3226 kcontrol->private_value)->rshift;
3227 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3228 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3229 return -EINVAL;
3230 }
3231 if (out_ch >= ADM_MAX_CHANNELS) {
3232 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3233 return -EINVAL;
3234 }
3235
3236 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3237 ucontrol->value.integer.value[i] =
3238 channel_mixer[fe_id].channel_weight[out_ch][i];
3239
3240 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3241 __func__, fe_id,
3242 ucontrol->value.integer.value[0],
3243 ucontrol->value.integer.value[1],
3244 ucontrol->value.integer.value[2],
3245 ucontrol->value.integer.value[3],
3246 ucontrol->value.integer.value[4],
3247 ucontrol->value.integer.value[5],
3248 ucontrol->value.integer.value[6],
3249 ucontrol->value.integer.value[7]);
3250
3251 return 0;
3252}
3253
3254static const struct snd_kcontrol_new channel_mixer_controls[] = {
3255 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3256 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3257 msm_pcm_get_channel_rule_index,
3258 msm_pcm_put_channel_rule_index),
3259 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3260 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3261 msm_pcm_get_channel_rule_index,
3262 msm_pcm_put_channel_rule_index),
3263 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3264 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3265 msm_pcm_get_channel_rule_index,
3266 msm_pcm_put_channel_rule_index),
3267 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3268 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3269 msm_pcm_get_channel_rule_index,
3270 msm_pcm_put_channel_rule_index),
3271 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3272 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3273 msm_pcm_get_channel_rule_index,
3274 msm_pcm_put_channel_rule_index),
3275 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3276 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3277 msm_pcm_get_channel_rule_index,
3278 msm_pcm_put_channel_rule_index),
3279
3280 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3281 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3282 msm_pcm_get_out_chs,
3283 msm_pcm_put_out_chs),
3284 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3285 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3286 msm_pcm_get_out_chs,
3287 msm_pcm_put_out_chs),
3288 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3289 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3290 msm_pcm_get_out_chs,
3291 msm_pcm_put_out_chs),
3292 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3293 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3294 msm_pcm_get_out_chs,
3295 msm_pcm_put_out_chs),
3296 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3297 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3298 msm_pcm_get_out_chs,
3299 msm_pcm_put_out_chs),
3300 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3301 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3302 msm_pcm_get_out_chs,
3303 msm_pcm_put_out_chs),
3304 {
3305 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3306 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3307 .name = "MultiMedia1 Channel Mixer",
3308 .info = msm_pcm_channel_mixer_info,
3309 .get = msm_pcm_channel_mixer_get,
3310 .put = msm_pcm_channel_mixer_put,
3311 .private_value = (unsigned long)&(mm1_channel_mux)
3312 },
3313 {
3314 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3315 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3316 .name = "MultiMedia2 Channel Mixer",
3317 .info = msm_pcm_channel_mixer_info,
3318 .get = msm_pcm_channel_mixer_get,
3319 .put = msm_pcm_channel_mixer_put,
3320 .private_value = (unsigned long)&(mm2_channel_mux)
3321 },
3322 {
3323 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3324 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3325 .name = "MultiMedia3 Channel Mixer",
3326 .info = msm_pcm_channel_mixer_info,
3327 .get = msm_pcm_channel_mixer_get,
3328 .put = msm_pcm_channel_mixer_put,
3329 .private_value = (unsigned long)&(mm3_channel_mux)
3330 },
3331 {
3332 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3333 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3334 .name = "MultiMedia4 Channel Mixer",
3335 .info = msm_pcm_channel_mixer_info,
3336 .get = msm_pcm_channel_mixer_get,
3337 .put = msm_pcm_channel_mixer_put,
3338 .private_value = (unsigned long)&(mm4_channel_mux)
3339 },
3340 {
3341 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3342 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3343 .name = "MultiMedia1 Output Channel1",
3344 .info = msm_pcm_channel_weight_info,
3345 .get = msm_pcm_channel_weight_get,
3346 .put = msm_pcm_channel_weight_put,
3347 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3348 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3349 },
3350 {
3351 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3352 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3353 .name = "MultiMedia1 Output Channel2",
3354 .info = msm_pcm_channel_weight_info,
3355 .get = msm_pcm_channel_weight_get,
3356 .put = msm_pcm_channel_weight_put,
3357 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3358 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3359 },
3360 {
3361 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3362 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3363 .name = "MultiMedia1 Output Channel3",
3364 .info = msm_pcm_channel_weight_info,
3365 .get = msm_pcm_channel_weight_get,
3366 .put = msm_pcm_channel_weight_put,
3367 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3368 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3369 },
3370 {
3371 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3372 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3373 .name = "MultiMedia1 Output Channel4",
3374 .info = msm_pcm_channel_weight_info,
3375 .get = msm_pcm_channel_weight_get,
3376 .put = msm_pcm_channel_weight_put,
3377 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3378 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3379 },
3380 {
3381 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3382 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3383 .name = "MultiMedia1 Output Channel5",
3384 .info = msm_pcm_channel_weight_info,
3385 .get = msm_pcm_channel_weight_get,
3386 .put = msm_pcm_channel_weight_put,
3387 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3388 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3389 },
3390 {
3391 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3392 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3393 .name = "MultiMedia1 Output Channel6",
3394 .info = msm_pcm_channel_weight_info,
3395 .get = msm_pcm_channel_weight_get,
3396 .put = msm_pcm_channel_weight_put,
3397 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3398 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3399 },
3400 {
3401 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3402 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3403 .name = "MultiMedia1 Output Channel7",
3404 .info = msm_pcm_channel_weight_info,
3405 .get = msm_pcm_channel_weight_get,
3406 .put = msm_pcm_channel_weight_put,
3407 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3408 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3409 },
3410 {
3411 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3412 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3413 .name = "MultiMedia1 Output Channel8",
3414 .info = msm_pcm_channel_weight_info,
3415 .get = msm_pcm_channel_weight_get,
3416 .put = msm_pcm_channel_weight_put,
3417 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3418 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3419 },
3420 {
3421 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3422 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3423 .name = "MultiMedia2 Output Channel1",
3424 .info = msm_pcm_channel_weight_info,
3425 .get = msm_pcm_channel_weight_get,
3426 .put = msm_pcm_channel_weight_put,
3427 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3428 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3429 },
3430 {
3431 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3432 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3433 .name = "MultiMedia2 Output Channel2",
3434 .info = msm_pcm_channel_weight_info,
3435 .get = msm_pcm_channel_weight_get,
3436 .put = msm_pcm_channel_weight_put,
3437 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3438 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3439 },
3440 {
3441 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3442 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3443 .name = "MultiMedia2 Output Channel3",
3444 .info = msm_pcm_channel_weight_info,
3445 .get = msm_pcm_channel_weight_get,
3446 .put = msm_pcm_channel_weight_put,
3447 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3448 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3449 },
3450 {
3451 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3452 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3453 .name = "MultiMedia3 Output Channel1",
3454 .info = msm_pcm_channel_weight_info,
3455 .get = msm_pcm_channel_weight_get,
3456 .put = msm_pcm_channel_weight_put,
3457 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3458 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3459 },
3460 {
3461 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3462 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3463 .name = "MultiMedia3 Output Channel2",
3464 .info = msm_pcm_channel_weight_info,
3465 .get = msm_pcm_channel_weight_get,
3466 .put = msm_pcm_channel_weight_put,
3467 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3468 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3469 },
3470 {
3471 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3472 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3473 .name = "MultiMedia1 Channel1",
3474 .info = msm_pcm_channel_input_be_info,
3475 .get = msm_pcm_channel_input_be_get,
3476 .put = msm_pcm_channel_input_be_put,
3477 .private_value = (unsigned long)&(mm1_ch1_enum)
3478 },
3479 {
3480 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3481 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3482 .name = "MultiMedia1 Channel2",
3483 .info = msm_pcm_channel_input_be_info,
3484 .get = msm_pcm_channel_input_be_get,
3485 .put = msm_pcm_channel_input_be_put,
3486 .private_value = (unsigned long)&(mm1_ch2_enum)
3487 },
3488 {
3489 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3490 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3491 .name = "MultiMedia1 Channel3",
3492 .info = msm_pcm_channel_input_be_info,
3493 .get = msm_pcm_channel_input_be_get,
3494 .put = msm_pcm_channel_input_be_put,
3495 .private_value = (unsigned long)&(mm1_ch3_enum)
3496 },
3497 {
3498 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3499 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3500 .name = "MultiMedia1 Channel4",
3501 .info = msm_pcm_channel_input_be_info,
3502 .get = msm_pcm_channel_input_be_get,
3503 .put = msm_pcm_channel_input_be_put,
3504 .private_value = (unsigned long)&(mm1_ch4_enum)
3505 },
3506 {
3507 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3508 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3509 .name = "MultiMedia1 Channel5",
3510 .info = msm_pcm_channel_input_be_info,
3511 .get = msm_pcm_channel_input_be_get,
3512 .put = msm_pcm_channel_input_be_put,
3513 .private_value = (unsigned long)&(mm1_ch5_enum)
3514 },
3515 {
3516 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3517 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3518 .name = "MultiMedia1 Channel6",
3519 .info = msm_pcm_channel_input_be_info,
3520 .get = msm_pcm_channel_input_be_get,
3521 .put = msm_pcm_channel_input_be_put,
3522 .private_value = (unsigned long)&(mm1_ch6_enum)
3523 },
3524 {
3525 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3526 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3527 .name = "MultiMedia1 Channel7",
3528 .info = msm_pcm_channel_input_be_info,
3529 .get = msm_pcm_channel_input_be_get,
3530 .put = msm_pcm_channel_input_be_put,
3531 .private_value = (unsigned long)&(mm1_ch7_enum)
3532 },
3533 {
3534 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3535 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3536 .name = "MultiMedia1 Channel8",
3537 .info = msm_pcm_channel_input_be_info,
3538 .get = msm_pcm_channel_input_be_get,
3539 .put = msm_pcm_channel_input_be_put,
3540 .private_value = (unsigned long)&(mm1_ch8_enum)
3541 },
3542};
3543static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3544 struct snd_ctl_elem_value *ucontrol)
3545{
3546 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3547 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3548 ucontrol->value.integer.value[0]);
3549 return 0;
3550}
3551
3552static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3553 struct snd_ctl_elem_value *ucontrol)
3554{
3555 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3556 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3557 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3558 return 0;
3559}
3560
3561static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3562 "Four", "Five", "Six", "Seven", "Eight"};
3563
3564static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3565 struct snd_ctl_elem_value *ucontrol)
3566{
3567 switch (msm_ec_ref_bit_format) {
3568 case SNDRV_PCM_FORMAT_S24_LE:
3569 ucontrol->value.integer.value[0] = 2;
3570 break;
3571 case SNDRV_PCM_FORMAT_S16_LE:
3572 ucontrol->value.integer.value[0] = 1;
3573 break;
3574 default:
3575 ucontrol->value.integer.value[0] = 0;
3576 break;
3577 }
3578 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3579 __func__, ucontrol->value.integer.value[0]);
3580 return 0;
3581}
3582
3583static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3584 struct snd_ctl_elem_value *ucontrol)
3585{
3586 u16 bit_width = 0;
3587
3588 switch (ucontrol->value.integer.value[0]) {
3589 case 2:
3590 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3591 break;
3592 case 1:
3593 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3594 break;
3595 default:
3596 msm_ec_ref_bit_format = 0;
3597 break;
3598 }
3599
3600 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3601 bit_width = 16;
3602 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3603 bit_width = 24;
3604
3605 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3606 __func__, msm_ec_ref_bit_format);
3607 adm_ec_ref_rx_bit_width(bit_width);
3608 return 0;
3609}
3610
3611static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3612
3613static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3614 struct snd_ctl_elem_value *ucontrol)
3615{
3616 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3617 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3618 __func__, ucontrol->value.integer.value[0]);
3619 return 0;
3620}
3621
3622static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3623 struct snd_ctl_elem_value *ucontrol)
3624{
3625 switch (ucontrol->value.integer.value[0]) {
3626 case 0:
3627 msm_ec_ref_sampling_rate = 0;
3628 break;
3629 case 1:
3630 msm_ec_ref_sampling_rate = 8000;
3631 break;
3632 case 2:
3633 msm_ec_ref_sampling_rate = 16000;
3634 break;
3635 case 3:
3636 msm_ec_ref_sampling_rate = 32000;
3637 break;
3638 case 4:
3639 msm_ec_ref_sampling_rate = 44100;
3640 break;
3641 case 5:
3642 msm_ec_ref_sampling_rate = 48000;
3643 break;
3644 case 6:
3645 msm_ec_ref_sampling_rate = 96000;
3646 break;
3647 case 7:
3648 msm_ec_ref_sampling_rate = 192000;
3649 break;
3650 case 8:
3651 msm_ec_ref_sampling_rate = 384000;
3652 break;
3653 default:
3654 msm_ec_ref_sampling_rate = 48000;
3655 break;
3656 }
3657 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3658 __func__, msm_ec_ref_sampling_rate);
3659 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3660 return 0;
3661}
3662
3663static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3664 "32000", "44100", "48000", "96000", "192000", "384000"};
3665
3666static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3667 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3668 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3669 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3670};
3671
3672static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3673 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3674 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3675 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3676 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3677 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3678 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3679};
3680
3681static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3682 struct snd_ctl_elem_value *ucontrol)
3683{
3684 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3685 mutex_lock(&routing_lock);
3686 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3687 mutex_unlock(&routing_lock);
3688 return 0;
3689}
3690
3691static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3692 struct snd_ctl_elem_value *ucontrol)
3693{
3694 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303695 struct snd_soc_dapm_widget *widget =
3696 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303697 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3698 struct snd_soc_dapm_update *update = NULL;
3699
3700
3701 mutex_lock(&routing_lock);
3702 switch (ucontrol->value.integer.value[0]) {
3703 case 0:
3704 msm_route_ec_ref_rx = 0;
3705 ec_ref_port_id = AFE_PORT_INVALID;
3706 break;
3707 case 1:
3708 msm_route_ec_ref_rx = 1;
3709 ec_ref_port_id = SLIMBUS_0_RX;
3710 break;
3711 case 2:
3712 msm_route_ec_ref_rx = 2;
3713 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3714 break;
3715 case 3:
3716 msm_route_ec_ref_rx = 3;
3717 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3718 break;
3719 case 4:
3720 msm_route_ec_ref_rx = 4;
3721 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3722 break;
3723 case 5:
3724 msm_route_ec_ref_rx = 5;
3725 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3726 break;
3727 case 6:
3728 msm_route_ec_ref_rx = 6;
3729 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3730 break;
3731 case 7:
3732 msm_route_ec_ref_rx = 7;
3733 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3734 break;
3735 case 9:
3736 msm_route_ec_ref_rx = 9;
3737 ec_ref_port_id = SLIMBUS_5_RX;
3738 break;
3739 case 10:
3740 msm_route_ec_ref_rx = 10;
3741 ec_ref_port_id = SLIMBUS_1_TX;
3742 break;
3743 case 11:
3744 msm_route_ec_ref_rx = 11;
3745 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3746 break;
3747 case 12:
3748 msm_route_ec_ref_rx = 12;
3749 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3750 break;
3751 case 13:
3752 msm_route_ec_ref_rx = 13;
3753 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3754 break;
3755 case 14:
3756 msm_route_ec_ref_rx = 14;
3757 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3758 break;
3759 case 15:
3760 msm_route_ec_ref_rx = 15;
3761 ec_ref_port_id = SLIMBUS_6_RX;
3762 break;
3763 case 16:
3764 msm_route_ec_ref_rx = 16;
3765 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3766 break;
3767 case 17:
3768 msm_route_ec_ref_rx = 17;
3769 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3770 break;
3771 case 18:
3772 msm_route_ec_ref_rx = 18;
3773 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3774 break;
3775 case 19:
3776 msm_route_ec_ref_rx = 19;
3777 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3778 break;
3779 case 20:
3780 msm_route_ec_ref_rx = 20;
3781 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3782 break;
3783 case 21:
3784 msm_route_ec_ref_rx = 21;
3785 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3786 break;
3787 case 22:
3788 msm_route_ec_ref_rx = 22;
3789 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3790 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003791 case 23:
3792 msm_route_ec_ref_rx = 23;
3793 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3794 break;
Bala Kishore Pati1a044712018-10-03 12:12:36 +05303795 case 24:
3796 msm_route_ec_ref_rx = 24;
3797 ec_ref_port_id = AFE_PORT_ID_PRIMARY_TDM_RX_1;
3798 break;
jinjiawu2e4225c2021-04-07 17:31:16 +08003799//[FairPhone][Audio][jinjia]=2021.04.07=Add QUIN_MI2S path for echo reference. -s
3800 case 25:
3801 msm_route_ec_ref_rx = 25;
3802 ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_RX;
3803 break;
3804//[FairPhone][Audio][jinjia]=2021.04.07=Add QUIN_MI2S path for echo reference. -e
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303805 default:
3806 msm_route_ec_ref_rx = 0; /* NONE */
3807 pr_err("%s EC ref rx %ld not valid\n",
3808 __func__, ucontrol->value.integer.value[0]);
3809 ec_ref_port_id = AFE_PORT_INVALID;
3810 break;
3811 }
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05303812 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303813 adm_ec_ref_rx_id(ec_ref_port_id);
3814 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3815 __func__, msm_route_ec_ref_rx);
3816 mutex_unlock(&routing_lock);
3817 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3818 msm_route_ec_ref_rx, e, update);
3819 return 0;
3820}
3821
3822static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3823 "PRI_MI2S_TX", "SEC_MI2S_TX",
3824 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3825 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3826 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3827 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Bala Kishore Pati1a044712018-10-03 12:12:36 +05303828 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
jinjiawu2e4225c2021-04-07 17:31:16 +08003829 "PRI_TDM_RX_1","QUIN_MI2S_RX"}; //[FairPhone][Audio][jinjia]=2021.04.07=Add QUIN_MI2S path for echo reference. - "PRI_TDM_RX_1"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303830
3831static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3832 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3833};
3834
3835static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3836 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3837 msm_route_ec_ref_rx_enum[0],
3838 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3839
3840static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3841 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3842 msm_route_ec_ref_rx_enum[0],
3843 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3844
3845static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3846 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3847 msm_route_ec_ref_rx_enum[0],
3848 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3849
3850static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3851 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3852 msm_route_ec_ref_rx_enum[0],
3853 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3854
3855static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3856 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3857 msm_route_ec_ref_rx_enum[0],
3858 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3859
3860static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3861 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3862 msm_route_ec_ref_rx_enum[0],
3863 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3864
3865static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3866 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3867 msm_route_ec_ref_rx_enum[0],
3868 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3869
3870static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3871 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3872 msm_route_ec_ref_rx_enum[0],
3873 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3874
Asish Bhattacharya34504582017-08-08 12:55:01 +05303875static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3876 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3877 msm_route_ec_ref_rx_enum[0],
3878 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3879
Laxminath Kasam38070be2017-08-17 18:21:59 +05303880static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3881 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3882 msm_route_ec_ref_rx_enum[0],
3883 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3884
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303885static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3886 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3887 msm_route_ec_ref_rx_enum[0],
3888 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3889
3890static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3891 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
3892 msm_route_ec_ref_rx_enum[0],
3893 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3894
3895static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
3896 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
3897 msm_route_ec_ref_rx_enum[0],
3898 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3899
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05303900static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
3901 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
3902 msm_route_ec_ref_rx_enum[0],
3903 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3904
3905static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
3906 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
3907 msm_route_ec_ref_rx_enum[0],
3908 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3909
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303910static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
3911 struct snd_ctl_elem_value *ucontrol)
3912{
3913 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
3914
3915 mutex_lock(&routing_lock);
3916 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
3917 mutex_unlock(&routing_lock);
3918 return 0;
3919}
3920
3921static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
3922 struct snd_ctl_elem_value *ucontrol)
3923{
Asish Bhattacharya34504582017-08-08 12:55:01 +05303924 struct snd_soc_dapm_widget *widget =
3925 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303926 int mux = ucontrol->value.enumerated.item[0];
3927 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3928 int ret = 1;
3929 bool state = true;
3930 uint16_t ext_ec_ref_port_id;
3931 struct snd_soc_dapm_update *update = NULL;
3932
3933 if (mux >= e->items) {
3934 pr_err("%s: Invalid mux value %d\n", __func__, mux);
3935 return -EINVAL;
3936 }
3937
3938 mutex_lock(&routing_lock);
3939 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
3940
3941 switch (msm_route_ext_ec_ref) {
3942 case EXT_EC_REF_PRI_MI2S_TX:
3943 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3944 break;
3945 case EXT_EC_REF_SEC_MI2S_TX:
3946 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3947 break;
3948 case EXT_EC_REF_TERT_MI2S_TX:
3949 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3950 break;
3951 case EXT_EC_REF_QUAT_MI2S_TX:
3952 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3953 break;
3954 case EXT_EC_REF_QUIN_MI2S_TX:
3955 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
3956 break;
3957 case EXT_EC_REF_SLIM_1_TX:
3958 ext_ec_ref_port_id = SLIMBUS_1_TX;
3959 break;
3960 case EXT_EC_REF_NONE:
3961 default:
3962 ext_ec_ref_port_id = AFE_PORT_INVALID;
3963 state = false;
3964 break;
3965 }
3966
3967 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
3968 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
3969
3970 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
3971 mutex_unlock(&routing_lock);
3972 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
3973 update);
3974 } else {
3975 ret = -EINVAL;
3976 mutex_unlock(&routing_lock);
3977 }
3978 return ret;
3979}
3980
3981static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
3982 "SEC_MI2S_TX", "TERT_MI2S_TX",
3983 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
3984 "SLIM_1_TX"};
3985
3986static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
3987 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
3988};
3989
3990static const struct snd_kcontrol_new voc_ext_ec_mux =
3991 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
3992 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
3993
3994
3995static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05303996 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
3997 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303998 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
3999 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304000 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4001 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304002 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4003 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304004 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4005 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304006 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4007 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304008 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4009 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4011 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304012 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4013 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304014 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4015 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304016 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4017 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304018 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4019 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304020 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4021 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304022 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4023 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304024 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4025 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304026 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4027 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304028 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4029 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304030 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4031 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304032 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4033 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304034 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4035 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304036 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4037 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304038 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4039 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304040 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4041 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304042 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4043 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304044 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4045 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304046 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4047 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304048 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4049 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304050 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4051 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304052 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4053 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304054 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4055 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304056 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4057 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304058 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4059 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304060 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4061 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304062 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4063 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304064 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4065 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304066 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4067 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304068 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4069 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304070 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4071 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304072 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4073 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304074 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4075 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304076 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4077 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304078 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4079 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304080};
4081
4082static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304083 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4084 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304085 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4086 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304087 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4088 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304089 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4090 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304091 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4092 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304093 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304095 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4096 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304097 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4098 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304099 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4100 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304101 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4102 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304103 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4104 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304105 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4106 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304107 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4108 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304109 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4110 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304111 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4112 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304113 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4114 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304115 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4116 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304117 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4118 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304119 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4120 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304121 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4122 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304123 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4124 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304125 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4126 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304127 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4128 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304129 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4130 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304131 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4132 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304133 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4134 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304135 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4136 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304137 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4138 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304139 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4140 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304141 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4142 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304143 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4144 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304145 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4146 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304147 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4148 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304149 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4150 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304151 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4152 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304153 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4154 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304155 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4156 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304157 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4158 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304159 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4160 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304161 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4162 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304163 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4164 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304165 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4166 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167};
4168
4169static const struct snd_kcontrol_new spdif_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304170 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4171 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304172 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4173 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304174 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4175 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304176 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4177 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304178 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4179 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304180 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4181 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304182 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4183 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304184 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4185 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304186 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4187 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304188 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4189 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304190 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4191 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304192 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4193 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304194 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4195 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304196 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4197 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304198 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4199 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304200 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4201 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304202 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4203 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304204 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4205 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304206 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4207 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304208 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4209 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304210 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4211 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304212 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4213 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304214 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4215 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304216 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4217 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304218 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4219 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304220 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4221 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304222 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4223 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304224 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4225 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304226 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4227 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304228 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4229 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304230 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4231 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4233 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304234 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4235 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304236 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4237 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304238 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4239 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304240 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4241 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304242 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4243 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304244 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4245 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304246 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4247 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304248 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4249 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304250 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4251 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304252 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4253 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254};
4255
4256static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304257 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4258 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4260 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304261 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4262 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304263 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4264 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304265 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4266 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304267 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4268 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304269 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4270 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304271 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4272 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304273 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4274 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4276 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304277 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4278 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304279 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4280 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304281 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4282 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304283 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4284 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304285 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4286 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304287 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4288 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304289 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4290 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304291 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4292 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304293 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4294 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4296 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304297 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4298 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304299 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4300 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304301 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4302 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304303 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4304 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304305 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4306 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304307 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4308 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304309 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4310 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304311 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4312 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304313 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4314 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304315 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4316 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304317 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4318 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304319 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4320 msm_routing_put_audio_mixer),
4321};
4322
4323static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304324 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4325 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304326 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4327 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304328 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4329 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304330 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4331 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304332 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4333 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304334 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4335 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304336 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4337 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304338 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4339 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304340 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4341 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304342 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4343 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304344 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4345 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304346 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4347 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304348 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4349 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304350 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4351 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304352 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4353 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304354 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4355 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304356 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4357 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304358 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4359 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304360 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4361 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304362 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4363 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304364 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4365 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304366 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4367 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304368 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4369 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304370 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4371 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304372 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4373 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304374 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4375 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304376 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4377 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304378 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4379 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304380 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4381 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304382 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4383 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304384 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4385 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304386 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4387 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304388 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4389 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304390 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4391 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304392 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4393 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304394 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4395 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304396 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4397 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304398 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4399 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304400 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4401 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304402 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4403 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304404 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4405 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304406 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4407 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304408};
4409
4410static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304411 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4412 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304413 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4414 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304415 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4416 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304417 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4418 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304419 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4420 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304421 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4422 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304423 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4424 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304425 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4426 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304427 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4428 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304429 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4430 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304431 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4432 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304433 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4434 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304435 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4436 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304437 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4438 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304439 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4440 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304441 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4442 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304443 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4444 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304445 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4446 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304447 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4448 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304449 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4450 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304451 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4452 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304453 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4454 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304455 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4456 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304457 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4458 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304459 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4460 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304461 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4462 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304463 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4464 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304465 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4466 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304467 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4468 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304469 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4470 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304471 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4472 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304473 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4474 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304475 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4476 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304477 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4478 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304479 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4480 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304481 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4482 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304483 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4484 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304485 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4486 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304487 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4488 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304489 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4490 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304491 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4492 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304493 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4494 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304495};
4496
4497static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304498 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4499 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304500 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4501 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304502 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4503 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304504 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4505 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304506 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4507 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304508 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4509 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304510 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4511 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304512 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4513 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304514 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4515 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304516 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4517 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304518 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4519 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304520 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4521 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304522 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4523 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304524 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4525 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304526 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4527 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304528 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4529 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304530 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4531 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304532 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4533 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304534 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4535 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304536 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4537 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304538 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4539 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304540 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4541 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304542 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4543 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304544 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4545 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304546 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4547 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304548 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4549 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304550 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4551 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304552 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4553 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304554 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4555 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304556 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4557 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304558 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4559 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304560 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4561 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304562 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4563 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304564 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4565 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304566 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4567 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304568 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4569 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304570 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4571 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304572 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4573 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304574 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4575 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304576 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4577 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304578 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4579 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304580 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4581 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582};
4583
4584static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304585 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4586 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304587 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4588 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304589 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4590 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304591 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4592 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304593 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4594 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304595 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4596 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304597 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4598 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304599 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4600 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304601 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4602 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304603 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4604 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304605 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4606 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304607 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4608 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304609 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4610 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304611 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4612 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304613 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4614 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304615 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4616 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304617 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4618 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304619 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4620 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304621 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4622 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304623 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4624 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304625 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4626 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304627 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4628 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304629 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4630 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304631 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4632 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304633 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4634 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304635 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4636 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304637 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4638 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304639 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4640 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304641 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4642 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304643 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4644 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304645 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4646 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304647 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4648 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304649 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4650 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304651 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4652 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304653 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4654 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304655 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4656 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304657 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4658 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304659 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4660 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304661 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4662 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304663 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4664 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304665 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4666 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304667 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4668 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669};
4670
4671static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304672 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4673 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304674 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4675 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304676 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4677 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304678 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4679 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304680 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4681 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304682 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4683 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304684 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4685 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304686 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4687 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304688 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4689 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304690 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4691 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304692 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4693 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304694 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4695 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304696 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4697 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304698 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4699 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304700 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4701 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304702 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4703 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304704 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4705 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304706 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4707 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304708 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4709 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304710 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4711 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304712 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4713 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304714 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4715 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304716 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4717 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304718 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4719 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304720 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4721 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304722 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4723 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304724 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4725 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304726 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4727 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304728 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4729 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304730 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4731 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304732 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4733 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304734 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4735 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304736 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4737 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304738 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4739 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304740 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4741 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304742 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4743 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304744 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4745 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304746 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4747 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304748 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4749 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304750 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4751 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304752 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4753 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304754 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4755 msm_routing_put_audio_mixer),
4756
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304757};
4758
4759static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304760 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4761 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304762 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4763 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304764 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4765 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304766 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4767 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304768 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4769 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304770 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4771 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304772 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4773 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304774 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4775 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304776 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4777 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304778 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4779 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304780 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4781 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304782 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4783 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304784 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4785 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304786 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4787 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304788 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4789 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304790 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4791 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304792 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4793 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304794 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4795 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304796 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4797 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304798 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4799 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304800 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4801 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304802 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4803 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304804 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4805 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304806 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4807 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304808 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4809 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304810 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4811 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304812 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4813 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304814 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4815 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304816 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4817 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304818 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4819 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304820 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4821 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304822 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4823 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304824 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4825 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304826 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4827 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304828 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4829 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304830 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4831 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304832 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4833 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304834 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4835 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304836};
4837
4838static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304839 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4840 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304841 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4842 msm_routing_put_audio_mixer),
4843};
4844
4845static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304846 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4847 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304848 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4849 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304850 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4851 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304852 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4853 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304854 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4855 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304856 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4857 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304858 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4859 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304860 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4861 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304862 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4863 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304864 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4865 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304866 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4867 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304868 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4869 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304870 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4871 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304872 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4873 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304874 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4875 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304876 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4877 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304878 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4879 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304880 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4881 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304882 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4883 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304884 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4885 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304886 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4887 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304888 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4889 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304890 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4891 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304892 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4893 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304894 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4895 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304896 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4897 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304898 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4899 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304900 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4901 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304902 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4903 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304904 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4905 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304906 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4907 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304908 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4909 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304910 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4911 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304912 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4913 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304914 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4915 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304916 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4917 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304918 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4919 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304920 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4921 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304922 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4923 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304924 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4925 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304926 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4927 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304928 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4929 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304930};
4931
4932static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304933 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4934 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304935 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4936 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304937 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4938 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304939 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4940 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304941 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4942 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304943 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4944 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304945 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4946 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304947 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4948 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304949 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4950 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304951 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4952 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304953 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4954 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304955 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4956 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304957 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4958 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304959 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4960 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304961 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4962 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304963 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4964 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304965 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4966 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304967 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4968 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304969 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4970 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304971 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4972 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304973 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4974 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304975 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4976 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304977 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4978 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304979 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4980 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304981 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4982 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304983 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4984 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304985 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4986 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304987 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4988 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304989 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4990 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304991 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4992 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304993 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4994 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304995 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4996 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304997 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4998 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304999 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5000 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305001 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5002 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305003 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5004 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305005 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5006 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305007 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5008 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305009 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5010 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305011 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5012 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305013 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5014 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305015 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5016 msm_routing_put_audio_mixer),
Ramjee Singh29973d72020-03-06 09:21:43 +05305017 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5018 MSM_BACKEND_DAI_PRI_MI2S_RX,
5019 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5020 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305021};
5022
5023static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305024 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305028 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5029 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305030 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5031 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305032 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5033 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305034 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5035 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305036 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5037 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5039 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305040 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5041 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5043 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305044 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305048 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305052 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305056 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305060 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305064 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305068 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305072 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305076 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305080 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305084 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305086 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
5088};
5089
5090static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305091 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5092 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305093 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305095 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5096 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305097 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5098 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305099 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5100 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305101 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5102 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305103 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5104 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305105 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5106 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305107 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5108 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305109 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5110 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305111 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5112 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305113 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5114 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305115 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5116 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305117 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5118 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305119 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5120 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305121 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5122 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305123 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5124 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305125 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5126 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305127 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5128 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305129 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5130 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305131 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5132 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305133 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5134 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305135 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5136 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305137 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5138 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305139 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5140 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305141 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5142 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305143 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5144 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305145 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5146 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305147 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5148 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305149 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5150 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305151 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5152 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305153 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5154 msm_routing_put_audio_mixer),
5155};
5156
5157static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305158 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305162 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305166 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305170 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305172 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305174 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5175 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5177 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305178 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5179 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305180 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5181 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305182 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5183 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305184 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5185 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305186 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5187 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305188 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5189 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305190 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305194 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305198 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5199 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305200 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5201 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305202 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5203 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305204 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5205 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305206 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5207 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305208 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5209 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305210 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5211 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305212 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5213 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305214 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5215 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305216 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5217 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305218 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5219 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305220 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5221 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305222 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5223 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305224 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5225 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305226 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5227 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305228 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5229 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305230 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5231 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305232 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5233 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305234 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5235 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305236 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5237 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305238 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5239 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305240 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5241 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305242};
5243
5244static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305245 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305249 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305253 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305257 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305261 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305265 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305269 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305273 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305277 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5278 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305279 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5280 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305281 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5282 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305283 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5284 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305285 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5286 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305287 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5288 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305289 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5290 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305291 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5292 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305293 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305295 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305297 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5298 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305299 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5300 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305301 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5302 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305303 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5304 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305305 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5306 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305307 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5308 msm_routing_put_audio_mixer),
5309};
5310
5311 /* incall music delivery mixer */
5312static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305313 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305317 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5318 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5320 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305321 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5322 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5324 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305325 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5326 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305327 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5328 msm_routing_put_audio_mixer),
5329};
5330
5331static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305332 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5333 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305334 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5335 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305336 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5337 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5339 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305340 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5341 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305342 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5343 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305344 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5345 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305346 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5347 msm_routing_put_audio_mixer),
5348};
5349
5350static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305351 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5352 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305353 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5354 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305355 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5356 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305357 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5358 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305359 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5360 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305361 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5362 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305363 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5364 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305365 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5366 msm_routing_put_audio_mixer),
5367};
5368
5369static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305370 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5371 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305372 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5373 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305374 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5375 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305376 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5377 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305378 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5379 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305380 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5381 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305382 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5383 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305384 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5385 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305386 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5387 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305388 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5389 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305390 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5391 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305392 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5393 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305394 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5395 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305396 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5397 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305398 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5399 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305400 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5401 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305402 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5403 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305404 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5405 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305406 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5407 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305408 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5409 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305410 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5411 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305412 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5413 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305414 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5415 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305416 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5417 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305418 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5419 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305420 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5421 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305422 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5423 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305424 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5425 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305426 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5427 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305428 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5429 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305430 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5431 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305432 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5433 msm_routing_put_audio_mixer),
5434};
5435
5436static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305437 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5438 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305439 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5440 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305441 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5442 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305443 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5444 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305445 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5446 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305447 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5448 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305449 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5450 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305451 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5452 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305453 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5454 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305455 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5456 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305457 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5458 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305459 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5460 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305461 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5462 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305463 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5464 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305465 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5466 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305467 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5468 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305469 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5470 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305471 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5472 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305473 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5474 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305475 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5476 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305477 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5478 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305479 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5480 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305481 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5482 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305483 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5484 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305485 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5486 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305487 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5488 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305489 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5490 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305491 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5492 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305493 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5494 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305495 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5496 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305497 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5498 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305499 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5500 msm_routing_put_audio_mixer),
5501};
5502
5503static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305504 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5505 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305506 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5507 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305508 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5509 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305510 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5511 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305512 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5513 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305514 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5515 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305516 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5517 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305518 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5519 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305520 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5521 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305522 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5523 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305524 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5525 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305526 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5527 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305528 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5529 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305530 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5531 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305532 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5533 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305534 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5535 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305536 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5537 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305538 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5539 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305540 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5541 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305542 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5543 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305544 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5545 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305546 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5547 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305548 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5549 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305550 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5551 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305552 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5553 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305554 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5555 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305556 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5557 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305558 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5559 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305560 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5561 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305562 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5563 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305564 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5565 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305566 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5567 msm_routing_put_audio_mixer),
5568};
5569
5570static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305571 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5572 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305573 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5574 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305575 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5576 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305577 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5578 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305579 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5580 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305581 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5582 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305583 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5584 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305585 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5586 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305587 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5588 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305589 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5590 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305591 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5592 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305593 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5594 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305595 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5596 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305597 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5598 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305599 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5600 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305601 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5602 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305603 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5604 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305605 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5606 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305607 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5608 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305609 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5610 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305611 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5612 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305613 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5614 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305615 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5616 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305617 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5618 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305619 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5620 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305621 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5622 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305623 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5624 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305625 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5626 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305627 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5628 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305629 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5630 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305631 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5632 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305633 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5634 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305635 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5636 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305637 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5638 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305639 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5640 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305641 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5642 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305643 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5644 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305645 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5646 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305647 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5648 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305649 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5650 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305651 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5652 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305653 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5654 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305655};
5656
5657static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305658 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5659 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305660 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5661 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305662 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5663 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305664 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5665 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305666 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5667 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305668 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5669 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305670 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5671 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305672 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5673 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305674 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5675 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305676 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5677 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305678 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5679 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305680 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5681 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305682 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5683 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305684 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5685 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305686 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5687 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305688 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5689 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305690 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5691 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305692 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5693 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305694 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5695 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305696 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5697 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305698 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5699 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305700 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5701 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305702 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5703 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305704 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5705 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305706 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5707 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305708 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5709 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305710 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5711 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305712 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5713 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305714 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5715 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305716 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5717 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305718 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5719 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305720 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5721 msm_routing_put_audio_mixer),
5722};
5723
5724static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305725 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5726 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305727 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5728 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305729 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5730 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305731 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5732 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305733 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5734 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305735 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5736 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305737 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5738 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305739 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5740 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305741 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5742 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305743 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5744 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305745 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5746 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305747 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5748 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305749 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5750 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305751 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5752 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305753 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5754 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305755 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5756 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305757 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5758 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305759 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5760 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305761 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5762 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305763 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5764 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305765 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5766 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305767 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5768 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305769 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5770 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305771 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5772 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305773 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5774 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305775 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5776 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305777 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5778 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305779 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5780 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305781 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5782 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305783 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5784 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305785 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5786 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305787 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5788 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305789 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5790 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305791 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5792 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305793 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5794 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305795 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5796 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305797 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5798 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305799 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5800 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305801 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305803 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305805 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305807 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305809};
5810
5811static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305812 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5813 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305814 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5815 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305816 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5817 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305818 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5819 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305820 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5821 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305822 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5823 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305824 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5825 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305826 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5827 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305828 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5829 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305830 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5831 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305832 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5833 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5835 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305836 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5837 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305838 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5839 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305840 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5841 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305842 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5843 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305844 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5845 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305846 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5847 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305848 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5849 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305850 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5851 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305852 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5853 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305854 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5855 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305856 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5857 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305858 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5859 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305860 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5861 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305862 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5863 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305864 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5865 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305866 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5867 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305868 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5869 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305870 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5871 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305872 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305874 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305876 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305878 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305880 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305882 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305884 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305886 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305888 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305890 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305892 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305894 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305896};
5897
5898static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305899 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5900 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305901 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5902 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305903 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5904 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305905 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5906 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305907 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5908 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305909 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5910 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305911 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5912 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305913 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5914 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305915 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5916 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305917 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5918 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305919 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5920 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305921 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5922 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305923 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5924 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305925 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5926 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305927 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5928 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5930 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305931 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5932 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305933 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5934 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305935 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5936 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305937 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5938 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305939 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5940 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305941 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5942 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305943 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305945 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305947 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305949 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305951 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305953 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305955 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305957 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305959 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5960 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305961 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305963 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5964 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305965 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305967 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305969 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305971 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305973 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305975 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305977 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305979 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5980 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305981 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305983};
5984
5985static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305986 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5987 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305988 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5989 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305990 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5991 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305992 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5993 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305994 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5995 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305996 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5997 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305998 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5999 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306000 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6001 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306002 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6003 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306004 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6005 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306006 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6007 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306008 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6009 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306010 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6011 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306012 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6013 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306014 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306016 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306018 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306020 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306022 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306024 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306026 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306028 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306030 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306032 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306034 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306036 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306038 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306040 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306042 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306044 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306046 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306048 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306050 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306052 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306054 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306056 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306058 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306060 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306062 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05306064 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306066 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05306068 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306070};
6071
6072static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306073 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6074 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6076 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306077 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6078 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306079 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306081 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6082 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306083 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306085 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306087 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306089 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306091 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306093 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306095 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306097 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306099 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306101 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306103 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306105 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306107 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306109 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306111 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306113 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306115 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306117 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306119 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306121 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306123 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306125 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306127 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306129 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6130 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306131 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6132 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306133 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306135 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
6137};
6138
6139static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306140 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6141 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306142 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6143 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306144 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6145 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306146 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6147 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306148 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6149 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306150 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6151 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306152 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6153 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306154 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6155 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306156 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306158 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306160 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306162 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306164 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306166 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306168 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306170 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306172 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306174 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306176 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306178 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306180 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306182 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306184 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306186 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306188 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306190 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306192 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306194 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306196 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306198 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306200 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306202 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
6204};
6205
Rohit Kumara5077932017-09-10 22:05:05 +05306206static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306207 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6208 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306209 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6210 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306211 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6212 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306213 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6214 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306215 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6216 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306217 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6218 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306219 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6220 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306221 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6222 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306223 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6224 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306225 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6226 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306227 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306229 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306231 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306233 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306235 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306237 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306239 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306241 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306243 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306245 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306247 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306249 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306251 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306253 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306255 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306257 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306259 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306261 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306263 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306265 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306267 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306269 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
6271};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306272static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306273 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6274 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306275 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6276 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306277 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6278 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306279 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6280 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306281 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6282 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306283 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6284 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306285 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6286 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306287 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6288 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306289 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6290 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306291 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6292 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306293 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6294 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306295 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6296 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306297 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6298 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306299 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6300 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306301 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6302 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306303 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6304 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306305 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6306 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306307 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6308 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306309 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6310 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306311 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6312 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306313 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6314 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306315 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6316 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306317 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6318 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306319 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6320 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306321 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6322 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306323 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6324 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306325 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6326 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306327 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6328 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306329 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6330 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306331 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6332 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306333 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6334 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306335 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6336 msm_routing_put_audio_mixer),
6337};
6338
6339static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306340 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6341 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306342 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6343 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306344 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6345 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306346 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6347 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306348 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6349 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306350 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6351 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306352 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6353 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306354 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6355 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306356 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6357 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306358 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6359 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306360 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6361 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306362 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6363 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306364 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6365 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306366 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6367 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306368 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6369 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306370 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6371 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306372 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6373 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306374 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6375 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306376 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6377 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306378 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6379 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306380 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6381 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306382 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6383 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306384 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6385 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306386 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6387 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306388 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6389 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306390 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6391 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306392 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6393 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306394 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6395 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306396 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6397 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306398 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6399 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306400 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6401 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306402 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6403 msm_routing_put_audio_mixer),
6404};
6405
6406static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306407 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6408 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306409 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6410 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306411 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6412 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306413 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6414 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306415 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6416 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306417 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6418 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306419 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6420 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306421 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6422 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306423 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6424 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306425 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6426 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306427 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6428 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306429 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6430 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306431 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6432 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306433 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6434 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306435 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6436 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306437 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6438 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306439 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6440 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306441 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6442 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306443 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6444 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306445 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6446 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306447 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6448 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306449 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6450 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306451 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6452 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306453 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6454 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306455 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6456 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306457 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6458 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306459 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6460 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306461 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6462 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306463 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6464 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306465 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6466 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306467 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6468 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306469 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6470 msm_routing_put_audio_mixer),
6471};
6472
6473static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306474 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6475 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306476 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6477 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306478 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6479 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306480 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6481 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306482 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6483 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306484 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6485 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306486 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6487 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306488 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6489 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306490 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6491 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306492 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6493 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306494 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6495 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306496 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6497 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306498 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6499 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306500 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6501 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306502 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6503 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306504 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6505 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306506 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6507 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306508 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6509 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306510 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6511 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306512 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6513 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306514 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6515 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306516 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6517 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306518 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6519 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306520 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6521 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306522 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6523 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306524 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6525 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306526 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6527 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306528 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6529 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306530 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6531 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306532 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6533 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306534 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6535 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306536 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6537 msm_routing_put_audio_mixer),
6538};
6539
6540static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306541 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6542 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306543 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6544 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306545 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6546 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306547 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6548 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306549 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6550 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306551 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6552 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306553 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6554 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306555 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6556 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306557 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6558 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306559 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6560 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306561 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6562 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306563 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6564 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306565 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6566 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306567 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6568 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306569 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6570 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306571 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6572 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306573 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6574 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306575 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6576 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306577 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6578 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306579 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6580 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306581 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6582 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306583 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6584 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306585 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6586 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306587 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6588 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306589 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6590 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306591 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6592 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306593 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6594 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306595 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6596 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306597 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6598 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306599 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6600 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306601 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6602 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306603 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6604 msm_routing_put_audio_mixer),
6605};
6606
6607static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306608 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6609 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306610 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6611 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306612 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6613 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306614 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6615 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306616 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6617 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306618 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6619 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306620 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6621 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306622 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6623 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306624 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6625 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306626 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6627 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306628 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6629 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306630 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6631 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306632 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6633 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306634 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6635 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306636 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6637 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306638 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6639 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306640 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6641 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306642 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6643 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306644 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6645 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306646 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6647 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306648 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6649 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306650 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6651 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306652 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306656 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306660 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306662 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306664 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306668 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306670 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
6672};
6673
6674static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306675 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6676 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306677 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6678 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306679 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6680 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306681 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6682 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306683 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6684 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306685 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6686 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306687 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6688 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306689 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6690 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306691 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6692 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306693 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6694 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306695 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6696 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306697 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6698 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306699 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6700 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306701 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6702 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306703 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6704 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306705 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6706 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306707 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6708 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306709 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6710 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306711 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6712 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306713 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6714 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306715 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6716 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306717 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6718 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306719 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6720 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306721 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6722 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306723 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306727 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306731 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306735 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306737 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
6739};
6740
6741static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306742 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6743 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306744 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6745 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306746 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6747 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6749 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306750 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6751 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306752 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6753 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306754 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6755 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306756 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6757 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306758 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6759 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306760 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6761 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306762 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6763 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306764 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6765 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306766 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6767 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306768 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6769 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306770 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6771 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306772 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6773 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306774 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6775 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306776 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6777 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306778 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6779 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306780 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6781 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306782 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6783 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306784 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6785 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306786 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6787 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306788 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6789 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306790 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6791 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306792 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6793 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306794 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6795 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306796 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6797 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306798 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6799 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306800 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6801 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306802 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6803 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306804 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6805 msm_routing_put_audio_mixer),
6806};
6807
6808static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306809 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6810 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6812 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306813 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6814 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306815 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6816 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306817 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6818 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306819 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6820 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306821 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6822 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306823 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6824 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306825 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6826 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306827 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6828 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306829 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6830 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306831 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6832 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306833 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6834 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306835 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6836 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306837 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6838 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306839 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6840 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306841 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6842 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306843 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6844 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306845 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6846 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306847 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6848 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306849 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6850 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306851 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6852 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306853 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6854 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306855 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6856 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306857 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6858 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306859 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6860 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306861 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6862 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306863 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6864 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306865 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6866 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306867 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6868 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306869 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6870 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306871 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6872 msm_routing_put_audio_mixer),
6873};
6874
6875static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306876 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6877 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306878 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6879 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306880 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6881 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306882 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6883 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306884 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6885 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306886 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6887 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306888 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6889 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306890 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6891 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306892 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6893 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306894 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6895 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306896 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6897 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6899 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306900 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6901 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306902 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6903 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306904 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6905 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306906 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6907 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306908 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6909 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306910 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6911 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306912 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6913 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306914 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6915 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306916 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6917 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306918 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6919 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306920 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6921 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306922 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6923 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306924 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6925 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306926 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6927 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306928 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6929 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306930 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6931 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306932 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6933 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306934 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6935 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306936 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6937 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306938 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6939 msm_routing_put_audio_mixer),
6940};
6941
6942static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306943 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6944 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306945 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6946 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306947 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6948 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306949 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6950 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306951 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6952 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306953 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6954 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306955 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6956 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306957 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6958 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306959 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6960 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306961 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6962 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306963 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6964 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306965 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6966 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306967 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6968 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306969 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6970 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306971 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6972 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6974 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306975 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6976 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6978 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306979 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6980 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306981 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6982 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306983 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6984 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306985 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6986 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306987 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6988 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306989 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6990 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306991 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6992 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306993 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6994 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306995 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6996 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306997 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6998 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306999 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7000 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307001 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7002 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307003 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7004 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307005 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7006 msm_routing_put_audio_mixer),
7007};
7008
7009static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307010 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7011 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307012 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7013 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307014 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7015 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307016 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7017 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307018 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7019 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307020 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7021 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307022 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7023 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307024 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7025 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307026 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7027 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307028 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7029 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307030 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7031 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307032 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7033 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307034 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7035 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307036 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7037 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307038 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7039 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307040 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7041 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307042 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7043 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307044 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7045 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307046 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7047 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307048 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7049 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307050 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7051 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307052 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7053 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307054 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7055 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307056 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7057 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307058 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7059 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307060 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7061 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307062 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7063 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307064 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7065 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307066 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7067 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307068 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7069 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307070 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7071 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307072 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7073 msm_routing_put_audio_mixer),
7074};
7075
7076static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307077 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7078 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307081 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7082 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307083 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307085 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7086 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307087 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307089 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7090 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307091 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307093 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7094 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307097 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7098 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307099 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307101 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7102 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307103 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7104 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307105 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7106 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307107 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7108 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307109 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7110 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307111 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7112 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307113 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7114 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307115 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7116 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307117 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7118 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307119 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7120 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307121 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7122 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307123 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7124 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307125 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7126 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307127 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7128 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307129 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7130 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307131 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7132 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307133 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7134 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307135 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7136 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307137 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7138 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307139 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7140 msm_routing_put_audio_mixer),
7141};
7142
7143static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307144 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7145 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307146 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7147 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307148 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7149 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307150 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7151 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307152 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7153 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307154 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7155 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307156 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7157 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307158 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7159 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307160 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7161 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307162 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7163 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307164 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7165 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307166 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307168 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7169 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307170 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307172 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7173 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307174 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307176 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7177 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307178 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307180 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7181 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307182 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307184 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7185 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307186 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307188 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7189 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307190 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7191 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307192 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7193 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307194 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7195 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307196 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7197 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307198 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7199 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307200 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7201 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307202 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7203 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307204 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7205 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307206 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7207 msm_routing_put_audio_mixer),
7208};
7209
7210static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307211 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7212 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307213 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7214 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307215 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7216 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307217 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7218 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307219 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7220 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307221 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7222 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307223 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7224 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307225 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7226 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307227 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7228 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307229 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7230 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307231 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7232 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307233 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7234 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307235 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7236 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307237 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7238 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307239 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7240 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307241 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7242 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307243 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7244 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307245 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7246 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307247 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7248 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307249 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7250 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307251 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7252 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307253 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7254 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307255 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7256 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307257 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7258 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307259 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7260 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307261 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7262 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307263 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7264 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307265 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7266 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307267 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7268 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307269 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7270 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307271 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7272 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307273 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7274 msm_routing_put_audio_mixer),
7275};
7276
7277static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307278 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7279 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307280 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7281 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307282 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7283 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307284 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7285 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307286 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7287 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307288 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7289 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307290 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7291 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307292 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7293 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307294 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7295 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307296 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7297 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307298 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7299 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307300 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7301 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307302 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7303 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307304 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7305 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307306 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7307 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307308 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7309 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307310 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7311 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307312 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7313 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307314 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7315 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307316 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7317 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307318 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7319 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307320 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7321 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307322 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7323 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307324 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7325 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307326 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7327 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307328 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7329 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307330 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7331 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307332 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7333 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307334 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7335 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307336 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7337 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307338 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7339 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307340 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7341 msm_routing_put_audio_mixer),
7342};
7343
7344static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307345 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7346 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7348 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307349 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7350 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307351 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7352 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307353 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7354 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307355 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7356 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307357 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7358 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307359 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7360 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307361 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7362 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307363 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7364 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307365 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7366 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307367 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7368 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307369 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7370 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307371 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7372 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307373 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7374 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307375 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7376 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307377 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7378 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307379 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7380 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307381 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7382 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307383 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7384 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307385 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7386 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307387 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7388 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307389 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7390 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307391 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7392 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307393 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7394 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307395 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7396 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307397 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7398 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307399 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7400 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307401 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7402 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307403 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7404 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307405 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7406 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307407 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7408 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307409 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7410 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307411 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7412 msm_routing_put_audio_mixer),
7413};
7414
7415static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307416 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7417 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307418 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7419 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307420 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7421 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307422 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7423 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307424 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7425 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307426 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7427 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307428 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7429 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307430 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7431 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307432 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7433 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307434 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7435 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307436 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7437 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307438 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7439 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307440 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7441 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307442 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7443 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307444 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7445 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307446 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7447 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307448 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7449 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307450 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7451 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307452 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7453 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307454 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7455 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307456 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7457 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307458 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7459 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307460 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7461 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307462 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7463 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307464 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7465 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307466 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7467 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307468 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7469 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307470 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7471 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307472 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7473 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307474 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7475 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307476 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7477 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307478 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7479 msm_routing_put_audio_mixer),
7480};
7481
7482static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307483 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7484 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307485 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7486 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307487 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7488 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307489 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7490 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307491 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7492 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307493 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7494 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307495 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7496 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307497 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7498 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307499 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7500 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307501 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7502 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307503 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7504 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307505 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7506 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307507 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7508 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307509 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7510 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307511 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7512 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307513 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7514 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307515 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7516 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307517 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7518 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307519 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7520 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307521 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7522 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307523 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7524 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307525 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7526 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307527 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7528 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307529 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7530 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307531 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7532 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307533 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7534 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307535 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7536 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7538 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307539 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7540 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307541 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7542 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307543 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7544 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307545 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7546 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307547 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7548 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307549 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7550 msm_routing_put_audio_mixer),
7551};
7552
7553static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307554 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7555 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307556 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7557 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307558 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7559 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307560 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7561 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307562 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7563 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307564 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7565 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307566 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7567 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307568 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7569 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307570 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7571 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307572 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7573 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307574 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7575 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307576 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7577 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307578 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7579 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307580 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7581 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307582 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7583 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307584 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7585 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307586 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7587 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307588 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7589 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307590 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7591 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307592 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7593 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307594 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7595 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307596 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7597 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307598 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7599 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307600 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7601 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307602 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7603 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307604 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7605 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307606 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7607 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7609 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307610 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7611 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307612 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7613 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307614 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7615 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307616 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7617 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307618 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7619 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307620 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7621 msm_routing_put_audio_mixer),
7622};
7623
7624static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307625 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7626 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307627 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7628 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307629 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7630 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307631 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7632 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307633 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7634 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307635 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7636 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307637 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7638 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307639 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7640 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307641 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7642 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307643 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7644 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307645 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7646 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307647 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7648 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307649 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7650 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307651 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7652 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307653 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7654 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307655 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7656 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307657 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7658 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307659 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7660 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307661 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7662 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307663 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7664 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307665 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7666 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307667 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7668 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307669 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7670 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307671 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7672 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307673 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7674 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307675 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7676 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307677 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7678 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7680 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307681 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7682 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307683 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7684 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307685 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7686 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307687 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7688 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307689 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7690 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307691 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7692 msm_routing_put_audio_mixer),
7693};
7694
Rohit Kumara5077932017-09-10 22:05:05 +05307695static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307696 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7697 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307698 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7699 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307700 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7701 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307702 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7703 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307704 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7705 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307706 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7707 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307708 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7709 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307710 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7711 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307712 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7713 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307714 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7715 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307716 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7717 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307718 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7719 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307720 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7721 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307722 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7723 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307724 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7725 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307726 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7727 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307728 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7729 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307730 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7731 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307732 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7733 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307734 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7735 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307736 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7737 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307738 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7739 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307740 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7741 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307742 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7743 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307744 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7745 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307746 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7747 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307748 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7749 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307750 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7751 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307752 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7753 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307754 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7755 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307756 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7757 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307758 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7759 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307760 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7761 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307762 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7763 msm_routing_put_audio_mixer),
7764};
7765
7766static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307767 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7768 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307769 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7770 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307771 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7772 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307773 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7774 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307775 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7776 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307777 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7778 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307779 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7780 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307781 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7782 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307783 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7784 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307785 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7786 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307787 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7788 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307789 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7790 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307791 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7792 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307793 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7794 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307795 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7796 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307797 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7798 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307799 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7800 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307801 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7802 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307803 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7804 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307805 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7806 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307807 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7808 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307809 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7810 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307811 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7812 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307813 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7814 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307815 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7816 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307817 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7818 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307819 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7820 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307821 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7822 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307823 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7824 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307825 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7826 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307827 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7828 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307829 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7830 msm_routing_put_audio_mixer),
7831};
7832
7833static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307834 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7835 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307836 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7837 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307838 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7839 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307840 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7841 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307842 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7843 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307844 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7845 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307846 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7847 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307848 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7849 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307850 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7851 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307852 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7853 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307854 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7855 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307856 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7857 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307858 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7859 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307860 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7861 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307862 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7863 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307864 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7865 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307866 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7867 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307868 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7869 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307870 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7871 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307872 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7873 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307874 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7875 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307876 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7877 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307878 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7879 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307880 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7881 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307882 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7883 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307884 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7885 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307886 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7887 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307888 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7889 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307890 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7891 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307892 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7893 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307894 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7895 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307896 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7897 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307898 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7899 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307900 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7901 msm_routing_put_audio_mixer),
7902};
7903
7904static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307905 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7906 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307907 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7908 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307909 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7910 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307911 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7912 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307913 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7914 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307915 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7916 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307917 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7918 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307919 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7920 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307921 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7922 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307923 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7924 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307925 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7926 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307927 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7928 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307929 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7930 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307931 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7932 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307933 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7934 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307935 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7936 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307937 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7938 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307939 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7940 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307941 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7942 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307943 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7944 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307945 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7946 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307947 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7948 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307949 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7950 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307951 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7952 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307953 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7954 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307955 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7956 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307957 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7958 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307959 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7960 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307961 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7962 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307963 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7964 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307965 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7966 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307967 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7968 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307969 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7970 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307971 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7972 msm_routing_put_audio_mixer),
7973};
7974
7975static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307976 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7977 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307978 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7979 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307980 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7981 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7983 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307984 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7985 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307986 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7987 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307988 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7989 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7991 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307992 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7993 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307994 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7995 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307996 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7997 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307998 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7999 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308000 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8001 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308002 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8003 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308004 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8005 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308006 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8007 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308008 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8009 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8011 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308012 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8013 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308014 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8015 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308016 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8017 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308018 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8019 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308020 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8021 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308022 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8023 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308024 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8025 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308026 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8027 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308028 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8029 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308030 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8031 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308032 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8033 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308034 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8035 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308036 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8037 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308038 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8039 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308040 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8041 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308042 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8043 msm_routing_put_audio_mixer),
8044};
8045
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308046static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308047 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
8048 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308049 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8050 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308051 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8052 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308053 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8054 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308055 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8056 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308057 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8058 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308059 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8060 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308061 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8062 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308063 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8064 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308065 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8066 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308067 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8068 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308069 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8070 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308071 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8072 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308073 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8074 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308075 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8076 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308077 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8078 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308079 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8080 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308081 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8082 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308083 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8084 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308085 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8086 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308087 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
8088 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308089 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8090 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308091 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
8092 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308093 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308095 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
8096 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308097 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8098 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308099 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
8100 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308101 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8102 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308103 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8104 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308105 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8106 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308107 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8108 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308109 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8110 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308111 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8112 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308113 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8114 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308115 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8116 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308117 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8118 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308119 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8120 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308121 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8122 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308123 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
8124 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308125 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8126 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308127 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8128 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308129 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8130 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308131 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8132 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308133 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8134 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308135 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8136 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308137 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8138 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308139 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8140 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308141 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8142 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308143 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8144 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308145 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8146 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308147 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8148 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308149 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8150 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308151 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8152 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308153 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8154 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308155 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8156 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308157 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8158 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308159 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8160 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308161 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8162 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308163 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8164 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308165 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8166 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308167 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8168 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308169 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8170 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308171 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308173 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308175 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308177 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308179 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308181 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308183 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8184 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308185 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8186 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308187 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8188 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308189 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8190 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308191 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8192 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308193 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8194 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308195 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_QUAT_TDM_TX_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 Wang007346c2019-10-16 12:52:13 +05308199 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8200 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308201 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8202 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308203 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8204 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308205 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8206 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308207 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8208 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308209 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8210 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308211 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8212 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308213 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8214 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308215 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8216 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308217 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8218 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308219 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
8220 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308221 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8222 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308223 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8224 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308225 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8226 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308227 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308229 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
8231};
8232
8233static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308234 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8235 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308236 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8237 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308238 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8239 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308240 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8241 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308242 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308244 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308246 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308250 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308254 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8255 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308256 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8257 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308258 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8259 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308260 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8261 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308262 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8263 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308264 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8265 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308266 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308270 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8271 MSM_BACKEND_DAI_SLIMBUS_6_TX,
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 Wang007346c2019-10-16 12:52:13 +05308274 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
8275 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308276 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8277 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308278 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8279 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8281 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308282 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8283 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308284 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8285 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308286 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8287 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308288 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8289 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308290 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8291 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308292 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8293 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308294 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308298 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308300 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308302 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308304 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308306 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8307 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308308 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8309 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308310 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8311 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308312 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8313 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308314 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8315 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308316 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8317 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308318 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8319 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308320 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8321 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308322 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8323 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308324 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8325 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308326 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8327 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308328 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8329 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308330 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8331 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308332 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8333 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308334 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8335 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308336 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8337 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308338 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8339 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308340 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8341 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308342 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8343 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308344 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8345 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308346 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8347 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308348 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8349 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308350 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8351 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308352 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8353 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308354 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8355 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308356 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8357 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308358 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8359 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308360 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8361 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308362 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8363 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308364 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8365 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308366 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8367 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308368 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8369 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308370 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8371 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308372 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8373 msm_routing_put_audio_mixer),
8374};
8375
8376static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308377 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8378 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8380 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308381 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8382 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308383 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8384 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308385 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8386 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308387 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8388 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308389 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8390 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308391 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8392 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308393 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8394 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308395 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8396 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308397 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
8398 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308399 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8400 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308401 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8402 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308403 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8404 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308405 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8406 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308407 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8408 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308409 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8410 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308411 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8412 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308413 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8414 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308415 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8416 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308417 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8418 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308419 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8420 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308421 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8422 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308423 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8424 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308425 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8426 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308427 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8428 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308429 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8430 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308431 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8432 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308433 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8434 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308435 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8436 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308437 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8438 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308439 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8440 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308441 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8442 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308443 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8444 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308445 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8446 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308447 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8448 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308449 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8450 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308451 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8452 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308453 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8454 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308455 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8456 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308457 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8458 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308459 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8460 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308461 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8462 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308463 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8464 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308465 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8466 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308467 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8468 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308469 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8470 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308471 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8472 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308473 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8474 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308475 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8476 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308477 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8478 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308479 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8480 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308481 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8482 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308483 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8484 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308485 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8486 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308487 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8488 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308489 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8490 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308491 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8492 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308493 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8494 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308495 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8496 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308497 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8498 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308499 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8500 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308501 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8502 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308503 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8504 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308505 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8506 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308507 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8508 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308509 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8510 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308511 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8512 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308513 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8514 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308515 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8516 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308517};
8518
8519static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308520 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8521 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308522 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8523 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308524 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8525 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308526 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8527 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308528 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8529 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308530 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8531 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308532 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8533 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308534 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8535 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308536 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8537 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308538 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8539 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308540 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8541 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308542 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8543 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308544 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8545 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308546 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8547 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308548 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8549 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308550 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8551 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308552 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8553 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308554 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8555 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308556 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8557 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308558 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8559 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308560 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8561 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8563 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308564 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8565 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308566 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8567 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308568 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8569 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308570 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8571 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308572 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8573 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308574 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8575 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308576 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8577 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308578 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8579 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308580 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8581 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308582 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8583 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308584 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8585 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308586 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8587 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308588 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8589 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8591 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308592 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8593 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308594 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8595 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308596 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8597 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308598 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8599 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308600 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8601 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308602 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8603 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308604 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8605 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308606 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8607 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308608 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8609 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308610 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8611 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308612 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8613 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308614 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8615 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308616 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8617 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308618 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8619 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308620 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8621 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308622 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8623 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308624 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8625 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308626 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8627 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308628 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8629 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308630 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8631 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308632 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8633 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308634 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8635 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308636 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8637 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308638 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8639 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308640 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8641 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308642 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8643 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308644 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8645 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308646 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8647 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308648 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8649 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308650 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8651 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308652 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8653 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308654 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8655 msm_routing_put_audio_mixer),
8656};
8657
8658static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308659 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8660 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308661 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8662 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308663 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8664 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8666 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308667 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8668 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308669 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8670 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308671 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8672 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308673 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8674 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308675 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8676 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308677 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8678 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308679 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8680 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308681 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8682 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308683 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8684 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308685 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8686 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308687 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8688 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308689 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8690 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308691 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8692 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308693 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8694 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308695 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8696 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308697 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8698 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308699 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8700 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308701 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8702 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308703 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8704 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308705 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8706 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308707 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8708 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308709 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8710 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308711 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8712 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308713 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8714 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308715 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8716 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308717 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8718 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308719 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8720 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308721 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8722 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308723 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8724 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308725 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8726 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308727 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8728 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308729 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8730 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308731 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8732 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308733 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8734 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308735 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308739 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308741 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308743 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8744 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308745 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8746 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308747 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308751 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308755 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308759 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308763 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308767 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308769 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308771 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308775 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308779 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308781 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308783 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308787 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308791 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308793 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308795 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8796 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308797 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8798 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308799 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308803 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308805 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308807 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
8808 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308809 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8810 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308811 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8812 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308813 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8814 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308815 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8816 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308817 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8818 msm_routing_put_audio_mixer),
8819};
8820
8821static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308822 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308826 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308830 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308834 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308838 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308842 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308846 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308850 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308854 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308858 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308862 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308864 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308866 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308868 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308870 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308874 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308878 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308880 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308882 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8883 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308884 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8885 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308886 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8887 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308888 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8889 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308890 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8891 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8893 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308894 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8895 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308896 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8897 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308898 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8899 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308900 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8901 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308902 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8903 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308904 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8905 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308906 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8907 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308908 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8909 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308910 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8911 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308912 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8913 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308914 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8915 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308916 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8917 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308918 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8919 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308920 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8921 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308922 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8923 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308924 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8925 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308926 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8927 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308928 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8929 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308930 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8931 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308932 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8933 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308934 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8935 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308936 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8937 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308938 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8939 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308940 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8941 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308942 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8943 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308944 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8945 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308946 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8947 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308948 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8949 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308950 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8951 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308952 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8953 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308954 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8955 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308956 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8957 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308958 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8959 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308960 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8961 msm_routing_put_audio_mixer),
8962};
8963
8964static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308965 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8966 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308967 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8968 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308969 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8970 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308971 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8972 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308973 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8974 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308975 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8976 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308977 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8978 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308979 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8980 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308981 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8982 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308983 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8984 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308985 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8986 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308987 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8988 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308989 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8990 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308991 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8992 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308993 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8994 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308995 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8996 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308997 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8998 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308999 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9000 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309001 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9002 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309003 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9004 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309005 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9006 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309007 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9008 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309009 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9010 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309011 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9012 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309013 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9014 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309015 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9016 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309017 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9018 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309019 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9020 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309021 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9022 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309023 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9024 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309025 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9026 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309027 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9028 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309029 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9030 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309031 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9032 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309033 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9034 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309035 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9036 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309037 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9038 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309039 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9040 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309041 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9042 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309043 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9044 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309045 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9046 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309047 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9048 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309049 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9050 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309051 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9052 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309053 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9054 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309055 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9056 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309057 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9058 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309059 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9060 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309061 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9062 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309063 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9064 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309065 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9066 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309067 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9068 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309069 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9070 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309071 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9072 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309073 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9074 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309075 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9076 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309077 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9078 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309079 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309081 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9082 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309083 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309085 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9086 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309087 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309089 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9090 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309091 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309093 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9094 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309095 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309097 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9098 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309099 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309101 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9102 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309103 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9104 msm_routing_put_audio_mixer),
9105};
9106
Asish Bhattacharya34504582017-08-08 12:55:01 +05309107static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309108 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9109 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309110 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9111 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309112 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9113 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309114 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9115 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309116 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9117 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309118 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9119 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309120 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9121 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309122 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9123 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309124 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9125 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309126 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9127 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309128 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9129 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309130 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9131 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309132 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9133 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309134 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9135 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309136 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9137 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309138 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9139 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309140 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9141 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309142 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9143 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309144 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9145 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309146 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9147 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309148 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9149 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309150 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9151 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309152 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9153 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309154 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9155 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309156 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9157 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309158 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9159 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309160 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9161 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309162 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9163 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309164 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9165 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309166 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309168 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9169 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309170 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309172 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9173 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309174 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309176 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9177 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309178 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309180 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9181 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309182 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309184 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9185 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309186 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309188 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9189 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309190 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9191 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309192 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9193 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309194 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9195 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309196 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9197 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309198 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9199 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309200 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9201 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309202 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9203 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309204 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9205 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309206 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9207 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309208 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9209 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309210 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9211 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309212 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9213 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309214 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9215 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309216 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9217 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309218 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9219 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309220 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9221 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309222 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9223 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309224 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9225 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05309226 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9227 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309228 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9229 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309230 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9231 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309232 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9233 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309234 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9235 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309236 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9237 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309238 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9239 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309240 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9241 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309242 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9243 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309244 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9245 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309246 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9247 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309248 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9249 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309250 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9251 msm_routing_put_audio_mixer),
9252};
9253
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309254static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309255 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9256 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309257 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9258 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309259 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9260 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309261 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9262 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309263 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9264 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309265 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9266 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309267 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9268 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309269 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9270 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309271 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9272 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309273 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9274 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309275 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9276 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309277 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9278 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309279 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9280 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309281 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9282 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309283 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9284 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309285 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9286 msm_routing_put_audio_mixer),
Gangadhar Sc1a5a502020-03-03 13:23:43 +05309287 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9288 MSM_BACKEND_DAI_PRI_TDM_TX_0,
9289 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9290 msm_routing_put_audio_mixer),
9291 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9292 MSM_BACKEND_DAI_PRI_TDM_TX_1,
9293 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9294 msm_routing_put_audio_mixer),
9295 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9296 MSM_BACKEND_DAI_PRI_TDM_TX_2,
9297 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9298 msm_routing_put_audio_mixer),
9299 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9300 MSM_BACKEND_DAI_PRI_TDM_TX_3,
9301 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9302 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309303 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9304 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309305 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9306 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309307 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9308 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309309 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9310 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309311 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9312 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309313 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9314 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309315 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9316 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309317 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9318 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309319 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9320 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309321 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9322 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309323 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9324 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309325 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9326 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309327 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9328 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309329 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9330 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309331 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9332 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9334 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309335 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9336 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309337 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9338 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309339 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9340 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309341 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9342 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309343 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9344 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309345 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9346 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309347 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9348 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309349 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9350 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309351 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9352 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Sachin Mohan Gadagd1b8fbc2018-07-20 15:50:17 +05309353 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9354 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309355};
9356
Laxminath Kasam38070be2017-08-17 18:21:59 +05309357static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309358 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9359 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309360 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9361 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309362 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9363 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309364 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9365 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309366 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9367 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309368 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9369 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309370 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9371 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309372 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9373 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309374 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9375 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309376 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9377 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309378 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9379 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309380 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9381 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309382 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9383 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309384 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9385 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309386 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9387 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309388 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9389 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309390 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9391 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -07009392 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9393 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309394 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9395 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309396 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9397 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309398 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9399 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309400 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9401 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309402 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9403 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309404 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9405 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309406 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9407 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309408 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9409 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309410 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9411 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309412 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9413 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309414 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9415 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309416 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9417 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309418 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9419 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309420 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9421 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309422 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9423 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309424 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9425 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309426 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9427 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309428 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9429 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309430 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9431 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009432 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9433 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309434 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9435 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009436 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9437 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309438 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9439 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009440 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9441 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309442 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9443 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009444 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9445 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309446 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009448 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309450 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009452 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309454 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009456 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309458 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_INT2_MI2S_TX,
9460 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
9462 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009464 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +05309466};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309467static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309468 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9469 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309470 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9471 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309472 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9473 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309474 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9475 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309476 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9477 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309478 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9479 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309480 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9481 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309482 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309484 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9485 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309486 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9487 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309488 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9489 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309490 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9491 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309492 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9493 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309494 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9495 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309496 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9497 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309498 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9499 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009500 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9501 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
9503 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9504 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9505 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309506};
9507
9508static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309509 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9510 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309511 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9512 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309513 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9514 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309515 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9516 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309517 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9518 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309519 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9520 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309521 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9522 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009523 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9524 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309525 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9526 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309527 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9528 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309529 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9530 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309531 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9532 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309533 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9534 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309535 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9536 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309537 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9538 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309539 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9540 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309541 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9542 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309543 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9544 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309545 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9546 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309547 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9548 msm_routing_put_audio_mixer),
9549};
9550
9551static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309552 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9553 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309554 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9555 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309556 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9557 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309558 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9559 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309560 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9561 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309562 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9563 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309564 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9565 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309566 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309568 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9569 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309570 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9571 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309572 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9573 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309574 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9575 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309576 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9577 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309578 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9579 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309580 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9581 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309582 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9583 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009584 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9585 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
9587 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9588 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309590};
9591
9592static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309593 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9594 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309595 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9596 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309597 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9598 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309599 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9600 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309601 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9602 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309603 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9604 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309605 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9606 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309607 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9608 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309609 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9610 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309611 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9612 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309613 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9614 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309615 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9616 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309617 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9618 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309619 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9620 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309621 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9622 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309623 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9624 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309625 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9626 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309627 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9628 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309629 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9630 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309631 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9632 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309633 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9634 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309635 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9636 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309637 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9638 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309639 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9640 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309641 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9642 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309643 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9644 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309645 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9646 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309647 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9648 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309649 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9650 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309651 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9652 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309653 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9654 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309655 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9656 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309657 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9658 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309659 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9660 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309661 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9662 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309663 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9664 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309665 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9666 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309667 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9668 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309669 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9670 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9672 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309673 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9674 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309675 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9676 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309677 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9678 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309679 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9680 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309681 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9682 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309683 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9684 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309685 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9686 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309687 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9688 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309689 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9690 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309691 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9692 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309693};
9694
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309695static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309696 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9697 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309698 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9699 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309700 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9701 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309702 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9703 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309704 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9705 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309706 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9707 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309708 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9709 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309710 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309712 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9713 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309714 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9715 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309716 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9717 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309718 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9719 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309720 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9721 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309722 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9723 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309724 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9725 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309726 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9727 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009728 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9729 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
9731 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9732 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309734};
9735
9736static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309737 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9738 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309739 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9740 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309741 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9742 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309743 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9744 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309745 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9746 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309747 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9748 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309749 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9750 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309751 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9752 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309753 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9754 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309755 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9756 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309757 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9758 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309759 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9760 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309761 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309763 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309765 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309767 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309769 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009771 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309773 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009775 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309777};
9778
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309779static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309780 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9781 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309782 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9783 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309784 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9785 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309786 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9787 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309788 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9789 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309790 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9791 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309792 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9793 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309794 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9795 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309796 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9799 msm_routing_put_voice_mixer),
9800};
9801
9802static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309803 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9804 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309805 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9806 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309807 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9808 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309809 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9810 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309811 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9812 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309813 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9814 msm_routing_put_voice_mixer),
9815};
9816
9817static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309818 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9819 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309820 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9821 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309822 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9823 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309824 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9825 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309826 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9827 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309828 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9829 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309830 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9831 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309832 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9833 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309834 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9835 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309836 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9837 msm_routing_put_voice_mixer),
9838};
9839
9840static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309841 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9842 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309843 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9844 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309845 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9846 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309847 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9848 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309849 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309851 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9852 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309853 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309855 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9856 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309857 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309859 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9860 msm_routing_put_voice_mixer),
9861};
9862
9863static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309864 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9865 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309866 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9867 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309868 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9869 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309870 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9871 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309872 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9873 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309874 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9875 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309876 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9877 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309878 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9879 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309880 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9881 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309882 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9883 msm_routing_put_voice_mixer),
9884};
9885
9886static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309887 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9888 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309889 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9890 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309891 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9892 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309893 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9894 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309895 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9896 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309897 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9898 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309899 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9900 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309901 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9902 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309903 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9904 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309905 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9906 msm_routing_put_voice_mixer),
9907};
9908
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009909static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309910 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9911MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009912 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9913 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309914 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9915MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009916 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9917 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309918 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9919MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009920 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9921 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309922 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9923MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009924 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9925 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309926 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9927MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009928 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9929 msm_routing_put_voice_mixer),
9930};
9931
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309932static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309933 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309935 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9936 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309937 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309939 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9940 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309941 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309943 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9944 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309945 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309947 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9948 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309949 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9950 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309951 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9952 msm_routing_put_voice_mixer),
9953};
9954
9955static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309956 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309958 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9959 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309960 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309962 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9963 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309964 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309966 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9967 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309968 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9971 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309972 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309974 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9975 msm_routing_put_voice_mixer),
9976};
9977
9978static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309979 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9980MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309981 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9982 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309983 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9984MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309985 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9986 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309987 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9988MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309989 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9990 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309991 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9992MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309993 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9994 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309995 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9996MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309997 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9998 msm_routing_put_voice_mixer),
9999};
10000
10001static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010002 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10003MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010004 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10005 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010006 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10007MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010008 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10009 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010010 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10011MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010012 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10013 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010014 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10015MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010016 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10017 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010018 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10019MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010020 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10021 msm_routing_put_voice_mixer),
10022};
10023
10024static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010025 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10026 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010027 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10028 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010029 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10030 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010031 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10032 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010033 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10034 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010035 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10036 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010037 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10038 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010039 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10040 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010041 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10042 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010043 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10044 msm_routing_put_voice_mixer),
10045};
10046
10047static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010048 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010050 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10051 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010052 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010054 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10055 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010056 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010058 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10059 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010060 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010062 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10063 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010064 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010066 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10067 msm_routing_put_voice_mixer),
10068};
10069
10070static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010071 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10072 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010073 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10074 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010075 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10076 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010077 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10078 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010079 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10080 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010081 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10082 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010083 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10084 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010085 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10086 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010087 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10088 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010089 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10090 msm_routing_put_voice_mixer),
10091};
10092
10093static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010094 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10095 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010096 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10097 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010098 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10099 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010100 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10101 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010102 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10103 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010104 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10105 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010106 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10107 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010108 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10109 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010110 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10111 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010112 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10113 msm_routing_put_voice_mixer),
10114};
10115
10116static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010117 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10118 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010119 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10120 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010121 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10122 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010123 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10124 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010125 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10126 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010127 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10128 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010129 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10130 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010131 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10132 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010133 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10134 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010135 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10136 msm_routing_put_voice_mixer),
10137};
10138
10139static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010140 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10141 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010142 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10143 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010144 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10145 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010146 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10147 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010148 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10149 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010150 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10151 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010152 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10153 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010154 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10155 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010156 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10157 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010158 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10159 msm_routing_put_voice_mixer),
10160};
10161
10162static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010163 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10164MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10166 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010167 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10168MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10170 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010171 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10172MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10174 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010175 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10176MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010177 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10178 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010179 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10180MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10182 msm_routing_put_voice_mixer),
10183};
10184
10185static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010186 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10187MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010188 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10189 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010190 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10191MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010192 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10193 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010194 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10195MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010196 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10197 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010198 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10199MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010200 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10201 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010202 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10203MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010204 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10205 msm_routing_put_voice_mixer),
10206};
10207
10208static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010209 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10210MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010211 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10212 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010213 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10214MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010215 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10216 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010217 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10218MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010219 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10220 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010221 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10222MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010223 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10224 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010225 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10226MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010227 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10228 msm_routing_put_voice_mixer),
10229};
10230
Rohit Kumara5077932017-09-10 22:05:05 +053010231static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010232 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10233MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010234 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10235 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010236 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10237MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010238 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10239 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010240 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10241MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010242 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10243 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010244 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10245MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010246 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10247 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010248 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10249MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010250 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10251 msm_routing_put_voice_mixer),
10252};
10253
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010254static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010255 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10256 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010257 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10258 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010259 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10260 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010261 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10262 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010263 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10264 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010265 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10266 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010267 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10268 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010269 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10270 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010271 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010273 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10274 msm_routing_put_voice_mixer),
10275};
10276
Raja Mallik321d5712018-05-04 17:22:11 +053010277static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
10278 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10279 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10280 msm_routing_put_voice_mixer),
10281 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10282 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10283 msm_routing_put_voice_stub_mixer),
10284 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10285 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10286 msm_routing_put_voice_stub_mixer),
10287 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10288 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10289 msm_routing_put_voice_mixer),
10290 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10291 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10292 msm_routing_put_voice_mixer),
10293 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10294 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10295 msm_routing_put_voice_mixer),
10296 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10297 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10298 msm_routing_put_voice_mixer),
10299 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10300 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10301 msm_routing_put_voice_mixer),
10302};
10303
10304static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
10305 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10306 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10307 msm_routing_put_voice_mixer),
10308 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10309 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10310 msm_routing_put_voice_stub_mixer),
10311 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10312 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10313 msm_routing_put_voice_stub_mixer),
10314 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10315 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10316 msm_routing_put_voice_mixer),
10317 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10318 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10319 msm_routing_put_voice_mixer),
10320 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10321 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10322 msm_routing_put_voice_mixer),
10323 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10324 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10325 msm_routing_put_voice_mixer),
10326 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10327 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10328 msm_routing_put_voice_mixer),
10329};
10330
10331static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
10332 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10333 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10334 msm_routing_put_voice_mixer),
10335 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10336 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10337 msm_routing_put_voice_stub_mixer),
10338 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10339 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10340 msm_routing_put_voice_stub_mixer),
10341 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10342 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10343 msm_routing_put_voice_mixer),
10344 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10345 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10346 msm_routing_put_voice_mixer),
10347 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10348 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10349 msm_routing_put_voice_mixer),
10350 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10351 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10352 msm_routing_put_voice_mixer),
10353 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10354 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10355 msm_routing_put_voice_mixer),
10356};
10357
10358static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
10359 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10360 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10361 msm_routing_put_voice_mixer),
10362 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10363 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10364 msm_routing_put_voice_stub_mixer),
10365 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10366 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10367 msm_routing_put_voice_stub_mixer),
10368 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10369 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10370 msm_routing_put_voice_mixer),
10371 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10372 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10373 msm_routing_put_voice_mixer),
10374 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10375 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10376 msm_routing_put_voice_mixer),
10377 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10378 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10379 msm_routing_put_voice_mixer),
10380 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10381 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10382 msm_routing_put_voice_mixer),
10383};
10384
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010385static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010386 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10387MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010388 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10389 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010390 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10391MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010392 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10393 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010394 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10395MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10397 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010398 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10399MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010400 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10401 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010402 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10403MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10405 msm_routing_put_voice_mixer),
10406};
10407
10408static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010409 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10410 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010411 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10412 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010413 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10414 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010415 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10416 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010417 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010419 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10420 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010421 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010423 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10424 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010425 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10426 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010427 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10428 msm_routing_put_voice_mixer),
10429};
10430
10431static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010432 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010434 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10435 msm_routing_put_voice_mixer),
10436};
10437
10438static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010439 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010441 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10442 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010443 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10444 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010445 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10446 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010447};
10448
10449static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010450 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010452 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10453 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010454 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010456 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10457 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010458};
10459
10460static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010461 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10462 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010463 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10464 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010465 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10466 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010467 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10468 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010469};
10470
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010472 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
10473 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010474 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10475 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010476 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
10477 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010478 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10479 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010480 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010481 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10482 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010483 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010484 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10485 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010486 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010487 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10488 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010489 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010490 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10491 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010492 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010493 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10494 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010495 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010496 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10497 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010498 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010499 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10500 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010501 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053010502 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10503 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010504 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010505 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10506 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010507 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010508 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10509 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010510 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010511 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10512 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010513 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010514 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10515 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010516 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010517 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10518 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010519 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
10520 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010521 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10522 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010523 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010524 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
10525 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010526 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Raja Mallik321d5712018-05-04 17:22:11 +053010527 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
10528 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010529 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010530 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10531 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010532 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010533 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10534 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010535};
10536
10537static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010538 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010540 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10541 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010542 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
10543 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010544 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10545 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010546 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10548 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010549 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010550 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10551 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010552 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010553 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10554 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010555 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010556 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10557 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010558 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10560 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010561 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010562 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10563 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010564 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010565 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10566 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010567 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053010568 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10569 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010570 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010571 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10572 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010573 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010574 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10575 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010576 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
Raja Mallik321d5712018-05-04 17:22:11 +053010577 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
10578 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010579 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010580 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10581 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010582 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10584 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010585 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010586 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10587 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010588 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010589 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10590 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010591 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010592 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10593 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010594 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010595 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10596 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010597};
10598
10599static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010600 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
10601 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010602 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10603 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010604 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
10605 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010606 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10607 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010608 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
10609 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010610 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10611 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010612 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
10613 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010614 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10615 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010616 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
10617 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010618 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10619 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010620 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
10621 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010622 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10623 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010624 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10625 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010626 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10627 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010628 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10629 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010630 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10631 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010632 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10633 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010634 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10635 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010636 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10637 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010638 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10639 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010640 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
10641 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010642 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10643 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010644 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
10645 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10647 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010648 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
10649 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010650 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10651 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010652 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
10653 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010654 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10655 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010656 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
10657 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010658 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10659 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010660 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
10661 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010662 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10663 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010664 SOC_DOUBLE_EXT("PRI_TDM_TX_3_Voip", SND_SOC_NOPM,
10665 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Bala Kishore Pati38de3862018-06-15 17:38:40 +053010666 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10667 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010668};
10669
10670static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010671 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10672 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010673 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10674 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010675 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10676 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010677 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10678 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010679 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10680 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010681 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10682 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010683 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10684 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010685 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10686 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010687 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10688 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010689 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10690 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010691 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10692 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010693 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10694 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010695 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10696 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010697 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10698 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010699 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10700 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010701 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10702 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010703 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10704 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010705 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10706 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010707 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10708 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010709 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10710 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010711 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10712 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010713 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10714 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010715 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10716 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010717 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10718 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010719 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10720 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010721 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10722 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010723 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10724 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010725 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10726 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010727 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10728 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010729 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10730 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010731 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10732 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010733 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10734 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010735 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10736 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010737 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10738 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010739 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10740 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10742 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010743 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10744 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010745 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10746 msm_routing_put_voice_stub_mixer),
10747};
10748
10749static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010750 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10751 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010752 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10753 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010754 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10755 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010756 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10757 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010758 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10759 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010760 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10761 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010762 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10763 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010764 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10765 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010766 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10767 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010768 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10769 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010770 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10771 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010772 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10773 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010774 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10775 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010776 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10777 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010778 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10779 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010780 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10781 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010782 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10783 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010784 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10785 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010786 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10787 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010788 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10789 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010790 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10791 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010792 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10793 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010794 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10795 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010796 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10797 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010798 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10799 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010800 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10801 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010802 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10803 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010804 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10805 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010806 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10807 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010808 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10809 msm_routing_put_voice_stub_mixer),
10810};
10811
10812static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010813 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10814 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010815 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10816 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010817 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10818 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010819 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10820 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010821 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10822 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010823 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10824 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010825 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10826 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010827 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10828 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010829 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10830 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010831 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10832 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010833 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10834 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010835 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10836 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010837 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10838 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010839 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10840 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010841 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10842 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010843 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10844 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010845 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10846 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010847 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10848 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010849 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10850 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010851 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10852 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010853 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10854 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010855 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10856 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010857 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10858 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010859 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10860 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010861 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10862 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010863 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10864 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010865 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10866 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010867 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10868 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010869 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10870 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010871 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10872 msm_routing_put_voice_stub_mixer),
10873};
10874
10875static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010876 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010878 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10879 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010880 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010882 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10883 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010884 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_INT_BT_SCO_TX,
10886 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010887 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010888 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010890 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10891 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010892 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010894 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10895 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010896 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010898 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10899 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010900 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010902 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10903 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010904 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010906 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10907 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010908 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10909 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010910 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10911 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010912 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
10913 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010914 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10915 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010916 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
10917 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010918 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10919 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010920 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
10921 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010922 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10923 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010924 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010926 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10927 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010928 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
10929 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010930 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10931 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010932 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
10933 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010934 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10935 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010936 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
10937 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010938 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10939 msm_routing_put_voice_mixer),
10940};
10941
10942static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010943 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10944 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010945 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10946 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010947 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10948 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010949 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10950 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010951 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10952 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010953 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10954 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010955 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10956 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010957 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10958 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010959 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10960 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010961 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10962 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010963 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10964 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010965 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10966 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010967 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10968 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010969 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
10970 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010971 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10972 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010973 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
10974 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010975 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10976 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010977 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
10978 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010979 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10980 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010981 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
10982 msm_routing_put_port_mixer),
10983};
10984
10985static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010986 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10987 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010988 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10989 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010990 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10991 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010992 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10993 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010994 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10995 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010996 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10997 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010998 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10999 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011000 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11001 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011002 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11003 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011004 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11005 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011006 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11007 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011008 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11009 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011010 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11011 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011012 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11013 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011014 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11015 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011016 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11017 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011018 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11019 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011020 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11021 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011022 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11023 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011024 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11025 msm_routing_put_port_mixer),
11026};
11027
11028static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011029 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11030 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011031 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11032 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011033 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11034 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011035 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11036 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011037 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11038 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011039 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11040 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011041 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011043 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11044 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011045 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11046 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011047 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11048 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011049 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11050 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011051 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11052 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011053 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11054 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011055 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11056 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011057 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11058 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011059 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11060 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011061 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11062 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011063 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11064 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011065 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11066 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011067 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11068 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011069 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11070 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011071 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11072 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011073 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011075 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11076 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011077 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011079 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11080 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011081 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11082 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011083 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11084 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011085 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11086 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011087 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11088 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011089 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11090 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011091 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11092 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011093 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11094 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011095 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11096 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011097 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
11098 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011099 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11100 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011101 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
11102 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011103 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11104 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011105 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
11106 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011107 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11108 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011109 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
11110 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011111 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11112 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011113 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
11114 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011115 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11116 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011117};
11118
11119static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011120 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11121 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011122 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11123 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011124 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11125 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011126 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11127 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011128 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11129 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011130 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11131 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011132 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11133 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011134 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11135 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011136 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011138 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
11139 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011140 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11141 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011142 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11143 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011144};
11145
11146static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011147 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11148 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011149 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11150 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011151 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11152 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011153 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11154 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011155 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11156 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011157 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11158 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011159 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011161 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11162 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011163};
11164
11165static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011166 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11167 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011168 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11169 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011170 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11171 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011172 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11173 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011174 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011176 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11177 msm_routing_put_port_mixer),
11178};
11179
11180static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011181 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11182 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011183 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11184 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011185 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11186 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011187 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11188 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011189 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011191 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11192 msm_routing_put_port_mixer),
11193};
11194
Rohit Kumara5077932017-09-10 22:05:05 +053011195static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011196 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011198 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11199 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011200 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011202 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11203 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011204 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011206 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11207 msm_routing_put_port_mixer),
11208};
11209
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011210static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011211 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11212 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011213 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11214 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011215 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11216 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011217 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
11218 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011219 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11220 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011221 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11222 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011223 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11224 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011225 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11226 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011227 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11228 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011229 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11230 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011231 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11232 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011233 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11234 msm_routing_put_port_mixer),
11235};
11236
11237static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011238 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011240 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
11241 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011242 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011244 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11245 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011246 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011248 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
11249 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011250 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
11251 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011252 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
11253 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011254 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
11255 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011256 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
11257 msm_routing_put_port_mixer),
11258};
11259
11260static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011261 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11262 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011263 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11264 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011265 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11266 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011267 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11268 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011269 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11270 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011271 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11272 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011273 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11274 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011275 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11276 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011277 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11278 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011279 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11280 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011281 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11282 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011283 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11284 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011285 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11286 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011287 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11288 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011289 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11290 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011291 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11292 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011293 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11294 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011295 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11296 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011297 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11298 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011299 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11300 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011301 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011303 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11304 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011305 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011307 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11308 msm_routing_put_port_mixer),
11309};
11310
11311static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011312 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011314 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11315 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011316 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11317 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011318 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11319 msm_routing_put_port_mixer),
11320};
11321
11322static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011323 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11324 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011325 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11326 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011327 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011329 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11330 msm_routing_put_port_mixer),
11331};
11332
11333
11334static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011335 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11336 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011337 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11338 msm_routing_put_port_mixer),
11339};
11340
11341static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011342 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11343 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011344 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11345 msm_routing_put_port_mixer),
11346};
11347
11348static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011349 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011351 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11352 msm_routing_put_port_mixer),
11353};
11354
11355static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011356 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11357 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011358 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11359 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011360 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11361 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011362 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11363 msm_routing_put_port_mixer),
11364};
11365
11366static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011367 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11368 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011369 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11370 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011371 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11372 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011373 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11374 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011375 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11376 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011377 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11378 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011379 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11380 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011381 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11382 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011383 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11384 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011385 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11386 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011387 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11388 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011389 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11390 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011391 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11392 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011393 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11394 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011395 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011397 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11398 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011399 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011401 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11402 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011403 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011405 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11406 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011407};
11408
11409static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011410 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11411 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011412 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
11413 msm_routing_put_port_mixer),
11414};
11415
11416static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011417 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11418 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011419 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11420 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011421 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11422 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011423 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11424 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011425 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11426 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011427 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11428 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011429 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11430 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011431 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11432 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011433 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11434 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011435 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11436 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011437 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11438 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011439 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11440 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011441 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11442 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011443 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11444 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011445 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11446 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011447 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11448 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011449 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11450 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011451 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11452 msm_routing_put_port_mixer),
11453};
11454
Rohit Kumara5077932017-09-10 22:05:05 +053011455static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011456 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11457 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011458 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11459 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011460 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11461 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011462 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11463 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011464 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11465 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011466 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11467 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011468 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11469 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011470 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11471 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011472 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11473 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011474 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11475 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011476 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11477 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011478 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11479 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011480 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011482 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11483 msm_routing_put_port_mixer),
11484};
11485
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011486static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011487 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11488 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011489 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11490 msm_routing_get_port_mixer,
11491 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011492 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11493 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011494 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11495 msm_routing_get_port_mixer,
11496 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011497 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11498 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011499 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11500 msm_routing_get_port_mixer,
11501 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011502 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011504 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11505 msm_routing_get_port_mixer,
11506 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011507 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11508 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011509 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11510 msm_routing_get_port_mixer,
11511 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011512 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11513 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011514 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11515 msm_routing_get_port_mixer,
11516 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011517 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11518 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011519 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11520 msm_routing_get_port_mixer,
11521 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011522 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11523 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011524 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11525 msm_routing_get_port_mixer,
11526 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011527 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11528 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011529 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11530 msm_routing_get_port_mixer,
11531 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011532 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11533 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011534 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11535 msm_routing_get_port_mixer,
11536 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011537 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11538 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011539 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11540 msm_routing_get_port_mixer,
11541 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011542 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11543 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011544 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11545 msm_routing_get_port_mixer,
11546 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011547 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11548 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011549 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11550 msm_routing_get_port_mixer,
11551 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011552 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011554 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11555 msm_routing_get_port_mixer,
11556 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011557 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11558 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011559 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11560 msm_routing_get_port_mixer,
11561 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011562 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11563 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011564 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11565 msm_routing_get_port_mixer,
11566 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011567 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011569 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11570 msm_routing_get_port_mixer,
11571 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011572 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11573 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011574 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11575 msm_routing_get_port_mixer,
11576 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011577 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11578 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011579 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11580 msm_routing_get_port_mixer,
11581 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011582 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11583 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011584 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11585 msm_routing_get_port_mixer,
11586 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011587};
11588
11589static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011590 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11591 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011592 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11593 msm_routing_get_port_mixer,
11594 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011595 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011597 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11598 msm_routing_get_port_mixer,
11599 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011600 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11601 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011602 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11603 msm_routing_get_port_mixer,
11604 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011605 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11606 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011607 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11608 msm_routing_get_port_mixer,
11609 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011610 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11611 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011612 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11613 msm_routing_get_port_mixer,
11614 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011615 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011617 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11618 msm_routing_get_port_mixer,
11619 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011620 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11621 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011622 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11623 msm_routing_get_port_mixer,
11624 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011625 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11626 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011627 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11628 msm_routing_get_port_mixer,
11629 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011630 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11631 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011632 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11633 msm_routing_get_port_mixer,
11634 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011635 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011637 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11638 msm_routing_get_port_mixer,
11639 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011640 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11641 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011642 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11643 msm_routing_get_port_mixer,
11644 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011645 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11646 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011647 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11648 msm_routing_get_port_mixer,
11649 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011650 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11651 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011652 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11653 msm_routing_get_port_mixer,
11654 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011655 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11656 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011657 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11658 msm_routing_get_port_mixer,
11659 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011660 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11661 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011662 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11663 msm_routing_get_port_mixer,
11664 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011665 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11666 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011667 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11668 msm_routing_get_port_mixer,
11669 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011670 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11671 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011672 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11673 msm_routing_get_port_mixer,
11674 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011675 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11676 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011677 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11678 msm_routing_get_port_mixer,
11679 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011680 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11681 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011682 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11683 msm_routing_get_port_mixer,
11684 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011685 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11686 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011687 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11688 msm_routing_get_port_mixer,
11689 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011690};
11691
11692static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011693 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11694 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011695 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11696 msm_routing_get_port_mixer,
11697 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011698 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11699 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011700 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11701 msm_routing_get_port_mixer,
11702 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011703 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11704 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011705 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11706 msm_routing_get_port_mixer,
11707 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011708 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11709 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011710 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11711 msm_routing_get_port_mixer,
11712 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011713 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11714 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011715 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11716 msm_routing_get_port_mixer,
11717 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011718 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011720 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11721 msm_routing_get_port_mixer,
11722 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011723 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11724 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011725 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11726 msm_routing_get_port_mixer,
11727 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011728 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11729 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011730 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11731 msm_routing_get_port_mixer,
11732 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011733 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11734 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011735 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11736 msm_routing_get_port_mixer,
11737 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011738 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011740 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11741 msm_routing_get_port_mixer,
11742 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011743 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11744 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011745 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11746 msm_routing_get_port_mixer,
11747 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011748 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11749 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011750 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11751 msm_routing_get_port_mixer,
11752 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011753 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11754 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011755 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11756 msm_routing_get_port_mixer,
11757 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011758 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011760 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11761 msm_routing_get_port_mixer,
11762 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011763 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11764 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011765 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11766 msm_routing_get_port_mixer,
11767 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011768 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11769 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011770 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11771 msm_routing_get_port_mixer,
11772 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011773 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11774 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011775 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11776 msm_routing_get_port_mixer,
11777 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011778 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011780 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11781 msm_routing_get_port_mixer,
11782 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011783 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11784 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011785 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11786 msm_routing_get_port_mixer,
11787 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011788 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11789 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011790 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11791 msm_routing_get_port_mixer,
11792 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011793};
11794
11795static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011796 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11797 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011798 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11799 msm_routing_get_port_mixer,
11800 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011801 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11802 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011803 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11804 msm_routing_get_port_mixer,
11805 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011806 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11807 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011808 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11809 msm_routing_get_port_mixer,
11810 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011811 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11812 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011813 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11814 msm_routing_get_port_mixer,
11815 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011816 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11817 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011818 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11819 msm_routing_get_port_mixer,
11820 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011821 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11822 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011823 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11824 msm_routing_get_port_mixer,
11825 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011826 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11827 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011828 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11829 msm_routing_get_port_mixer,
11830 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011831 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11832 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011833 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11834 msm_routing_get_port_mixer,
11835 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011836 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11837 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011838 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11839 msm_routing_get_port_mixer,
11840 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011841 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11842 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011843 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11844 msm_routing_get_port_mixer,
11845 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011846 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011848 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11849 msm_routing_get_port_mixer,
11850 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011851 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11852 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011853 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11854 msm_routing_get_port_mixer,
11855 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011856 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11857 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011858 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11859 msm_routing_get_port_mixer,
11860 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011861 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011863 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11864 msm_routing_get_port_mixer,
11865 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011866 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11867 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011868 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11869 msm_routing_get_port_mixer,
11870 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011871 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11872 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011873 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11874 msm_routing_get_port_mixer,
11875 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011876 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11877 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011878 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11879 msm_routing_get_port_mixer,
11880 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011881 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011883 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11884 msm_routing_get_port_mixer,
11885 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011886 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11887 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011888 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11889 msm_routing_get_port_mixer,
11890 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011891 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11892 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011893 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11894 msm_routing_get_port_mixer,
11895 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011896};
11897
11898static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011899 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11900 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011901 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11902 msm_routing_get_port_mixer,
11903 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011904 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011906 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11907 msm_routing_get_port_mixer,
11908 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011909 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11910 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011911 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11912 msm_routing_get_port_mixer,
11913 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011914 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11915 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011916 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11917 msm_routing_get_port_mixer,
11918 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011919 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11920 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011921 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11922 msm_routing_get_port_mixer,
11923 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011924 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011926 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11927 msm_routing_get_port_mixer,
11928 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011929 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11930 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011931 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11932 msm_routing_get_port_mixer,
11933 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011934 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11935 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011936 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11937 msm_routing_get_port_mixer,
11938 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011939 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11940 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011941 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
11942 msm_routing_get_port_mixer,
11943 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011944 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011946 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
11947 msm_routing_get_port_mixer,
11948 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011949 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11950 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011951 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
11952 msm_routing_get_port_mixer,
11953 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011954 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11955 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011956 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
11957 msm_routing_get_port_mixer,
11958 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011959 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11960 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011961 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11962 msm_routing_get_port_mixer,
11963 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011964 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011966 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11967 msm_routing_get_port_mixer,
11968 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011969 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11970 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011971 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11972 msm_routing_get_port_mixer,
11973 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011974 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11975 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011976 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11977 msm_routing_get_port_mixer,
11978 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011979 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011981 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11982 msm_routing_get_port_mixer,
11983 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011984 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011986 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11987 msm_routing_get_port_mixer,
11988 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011989 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011991 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11992 msm_routing_get_port_mixer,
11993 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011994 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011996 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11997 msm_routing_get_port_mixer,
11998 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011999};
12000
12001static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012002 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12003 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012004 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12005 msm_routing_get_port_mixer,
12006 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012007 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12008 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012009 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12010 msm_routing_get_port_mixer,
12011 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012012 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12013 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012014 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12015 msm_routing_get_port_mixer,
12016 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012017 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012019 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12020 msm_routing_get_port_mixer,
12021 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012022 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12023 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012024 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12025 msm_routing_get_port_mixer,
12026 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012027 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12028 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012029 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12030 msm_routing_get_port_mixer,
12031 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012032 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12033 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012034 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12035 msm_routing_get_port_mixer,
12036 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012037 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012039 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12040 msm_routing_get_port_mixer,
12041 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012042 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12043 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012044 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12045 msm_routing_get_port_mixer,
12046 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012047 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12048 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012049 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12050 msm_routing_get_port_mixer,
12051 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012052 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12053 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012054 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12055 msm_routing_get_port_mixer,
12056 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012057 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012059 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12060 msm_routing_get_port_mixer,
12061 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012062 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12063 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012064 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12065 msm_routing_get_port_mixer,
12066 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012067 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12068 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012069 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12070 msm_routing_get_port_mixer,
12071 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012072 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12073 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012074 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12075 msm_routing_get_port_mixer,
12076 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012077 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12078 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012079 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12080 msm_routing_get_port_mixer,
12081 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012082 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12083 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012084 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12085 msm_routing_get_port_mixer,
12086 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012087 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12088 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012089 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12090 msm_routing_get_port_mixer,
12091 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012092 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12093 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012094 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12095 msm_routing_get_port_mixer,
12096 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012097 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12098 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012099 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12100 msm_routing_get_port_mixer,
12101 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012102};
12103
12104static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012105 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12106 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012107 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12108 msm_routing_get_port_mixer,
12109 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012110 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12113 msm_routing_get_port_mixer,
12114 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012115 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12116 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012117 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12118 msm_routing_get_port_mixer,
12119 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012120 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12121 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012122 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12123 msm_routing_get_port_mixer,
12124 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012125 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12126 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012127 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12128 msm_routing_get_port_mixer,
12129 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012130 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12131 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012132 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12133 msm_routing_get_port_mixer,
12134 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012135 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12136 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012137 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12138 msm_routing_get_port_mixer,
12139 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012140 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12141 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012142 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12143 msm_routing_get_port_mixer,
12144 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012145 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12146 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012147 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12148 msm_routing_get_port_mixer,
12149 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012150 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12151 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012152 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12153 msm_routing_get_port_mixer,
12154 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012155 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12156 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012157 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12158 msm_routing_get_port_mixer,
12159 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012160 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12161 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012162 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12163 msm_routing_get_port_mixer,
12164 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012165 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12166 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012167 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12168 msm_routing_get_port_mixer,
12169 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012170 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12171 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012172 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12173 msm_routing_get_port_mixer,
12174 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012175 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012177 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12178 msm_routing_get_port_mixer,
12179 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012180 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12181 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012182 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12183 msm_routing_get_port_mixer,
12184 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012185 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12186 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012187 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12188 msm_routing_get_port_mixer,
12189 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012190 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12191 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012192 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12193 msm_routing_get_port_mixer,
12194 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012195 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12196 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012197 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12198 msm_routing_get_port_mixer,
12199 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012200 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12201 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012202 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12203 msm_routing_get_port_mixer,
12204 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012205};
12206
12207static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012208 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12209 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012210 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12211 msm_routing_get_port_mixer,
12212 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012213 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12214 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012215 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12216 msm_routing_get_port_mixer,
12217 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012218 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12219 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012220 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12221 msm_routing_get_port_mixer,
12222 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012223 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12224 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012225 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12226 msm_routing_get_port_mixer,
12227 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012228 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12229 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012230 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12231 msm_routing_get_port_mixer,
12232 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012233 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12234 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012235 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12236 msm_routing_get_port_mixer,
12237 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012238 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12239 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012240 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12241 msm_routing_get_port_mixer,
12242 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012243 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12244 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012245 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12246 msm_routing_get_port_mixer,
12247 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012248 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12249 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012250 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12251 msm_routing_get_port_mixer,
12252 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012253 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12254 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012255 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12256 msm_routing_get_port_mixer,
12257 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012258 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12259 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012260 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12261 msm_routing_get_port_mixer,
12262 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012263 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12264 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012265 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12266 msm_routing_get_port_mixer,
12267 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012268 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12269 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012270 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12271 msm_routing_get_port_mixer,
12272 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012273 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12274 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012275 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12276 msm_routing_get_port_mixer,
12277 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012278 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12279 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012280 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12281 msm_routing_get_port_mixer,
12282 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012283 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12284 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012285 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12286 msm_routing_get_port_mixer,
12287 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012288 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12289 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012290 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12291 msm_routing_get_port_mixer,
12292 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012293 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12294 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012295 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12296 msm_routing_get_port_mixer,
12297 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012298 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012300 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12301 msm_routing_get_port_mixer,
12302 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012303 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12304 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012305 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12306 msm_routing_get_port_mixer,
12307 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012308};
12309
12310static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012311 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12312 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012313 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12314 msm_routing_get_port_mixer,
12315 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012316 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12317 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012318 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12319 msm_routing_get_port_mixer,
12320 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012321 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012323 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12324 msm_routing_get_port_mixer,
12325 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012326 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12327 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012328 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12329 msm_routing_get_port_mixer,
12330 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012331 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12332 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012333 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12334 msm_routing_get_port_mixer,
12335 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012336 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12337 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012338 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12339 msm_routing_get_port_mixer,
12340 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012341 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12342 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012343 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12344 msm_routing_get_port_mixer,
12345 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012346 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12347 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012348 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12349 msm_routing_get_port_mixer,
12350 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012351 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12352 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012353 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12354 msm_routing_get_port_mixer,
12355 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012356 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12357 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012358 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12359 msm_routing_get_port_mixer,
12360 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012361 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12362 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012363 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12364 msm_routing_get_port_mixer,
12365 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012366 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12367 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012368 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12369 msm_routing_get_port_mixer,
12370 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012371 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12372 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012373 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12374 msm_routing_get_port_mixer,
12375 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012376 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12377 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012378 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12379 msm_routing_get_port_mixer,
12380 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012381 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12382 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012383 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12384 msm_routing_get_port_mixer,
12385 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012386 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012388 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12389 msm_routing_get_port_mixer,
12390 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012391 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12392 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012393 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12394 msm_routing_get_port_mixer,
12395 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012396 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12397 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012398 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12399 msm_routing_get_port_mixer,
12400 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012401 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012403 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12404 msm_routing_get_port_mixer,
12405 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012406 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12407 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012408 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12409 msm_routing_get_port_mixer,
12410 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012411};
12412
12413static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012414 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12415 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012416 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12417 msm_routing_get_port_mixer,
12418 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012419 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12420 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012421 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12422 msm_routing_get_port_mixer,
12423 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012424 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012426 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12427 msm_routing_get_port_mixer,
12428 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012429 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12430 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012431 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12432 msm_routing_get_port_mixer,
12433 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012434 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12435 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012436 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12437 msm_routing_get_port_mixer,
12438 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012439 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12440 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012441 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12442 msm_routing_get_port_mixer,
12443 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012444 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12445 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012446 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12447 msm_routing_get_port_mixer,
12448 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012449 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12450 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012451 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12452 msm_routing_get_port_mixer,
12453 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012454 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12455 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012456 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12457 msm_routing_get_port_mixer,
12458 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012459 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12460 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012461 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12462 msm_routing_get_port_mixer,
12463 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012464 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12465 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012466 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12467 msm_routing_get_port_mixer,
12468 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012469 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12470 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012471 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12472 msm_routing_get_port_mixer,
12473 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012474 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012476 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12477 msm_routing_get_port_mixer,
12478 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012479 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12480 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012481 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12482 msm_routing_get_port_mixer,
12483 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012484 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12485 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012486 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12487 msm_routing_get_port_mixer,
12488 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012489 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012491 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12492 msm_routing_get_port_mixer,
12493 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012494 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12495 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012496 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12497 msm_routing_get_port_mixer,
12498 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012499 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12500 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012501 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12502 msm_routing_get_port_mixer,
12503 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012504 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12505 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012506 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12507 msm_routing_get_port_mixer,
12508 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012509 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12510 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012511 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12512 msm_routing_get_port_mixer,
12513 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012514};
12515
12516static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012517 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12518 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012519 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12520 msm_routing_get_port_mixer,
12521 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012522 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12523 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012524 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12525 msm_routing_get_port_mixer,
12526 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012527 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12528 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012529 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12530 msm_routing_get_port_mixer,
12531 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012532 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12533 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012534 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12535 msm_routing_get_port_mixer,
12536 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012537 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12538 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012539 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12540 msm_routing_get_port_mixer,
12541 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012542 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12543 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012544 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12545 msm_routing_get_port_mixer,
12546 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012547 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12548 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012549 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12550 msm_routing_get_port_mixer,
12551 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012552 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12553 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012554 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12555 msm_routing_get_port_mixer,
12556 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012557 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12558 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012559 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12560 msm_routing_get_port_mixer,
12561 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012562 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12563 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012564 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12565 msm_routing_get_port_mixer,
12566 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012567 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12568 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012569 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12570 msm_routing_get_port_mixer,
12571 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012572 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12573 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012574 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12575 msm_routing_get_port_mixer,
12576 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012577 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12578 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012579 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12580 msm_routing_get_port_mixer,
12581 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012582 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12583 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012584 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12585 msm_routing_get_port_mixer,
12586 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012587 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12588 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012589 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12590 msm_routing_get_port_mixer,
12591 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012592 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12593 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012594 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12595 msm_routing_get_port_mixer,
12596 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012597 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12598 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012599 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12600 msm_routing_get_port_mixer,
12601 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012602 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12603 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012604 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12605 msm_routing_get_port_mixer,
12606 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012607 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12608 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012609 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12610 msm_routing_get_port_mixer,
12611 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012612 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012614 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12615 msm_routing_get_port_mixer,
12616 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012617};
12618
12619static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012620 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12623 msm_routing_get_port_mixer,
12624 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012625 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12626 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012627 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12628 msm_routing_get_port_mixer,
12629 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012630 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12631 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012632 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12633 msm_routing_get_port_mixer,
12634 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012635 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12636 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12638 msm_routing_get_port_mixer,
12639 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012640 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12641 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012642 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12643 msm_routing_get_port_mixer,
12644 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012645 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12646 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012647 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12648 msm_routing_get_port_mixer,
12649 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012650 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12651 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12653 msm_routing_get_port_mixer,
12654 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012655 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12656 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012657 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12658 msm_routing_get_port_mixer,
12659 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012660 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12661 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012662 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12663 msm_routing_get_port_mixer,
12664 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012665 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12666 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012667 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12668 msm_routing_get_port_mixer,
12669 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012670 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12671 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012672 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12673 msm_routing_get_port_mixer,
12674 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012675 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12676 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012677 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12678 msm_routing_get_port_mixer,
12679 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012680 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12681 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012682 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12683 msm_routing_get_port_mixer,
12684 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012685 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12686 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012687 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12688 msm_routing_get_port_mixer,
12689 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012690 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12691 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012692 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12693 msm_routing_get_port_mixer,
12694 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012695 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12696 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012697 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12698 msm_routing_get_port_mixer,
12699 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012700 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12701 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012702 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12703 msm_routing_get_port_mixer,
12704 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012705 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12706 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012707 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12708 msm_routing_get_port_mixer,
12709 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012710 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12711 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012712 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12713 msm_routing_get_port_mixer,
12714 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012715 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012717 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12718 msm_routing_get_port_mixer,
12719 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012720};
12721
12722static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012723 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12724 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012725 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12726 msm_routing_get_port_mixer,
12727 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012728 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12729 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012730 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12731 msm_routing_get_port_mixer,
12732 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012733 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12734 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012735 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12736 msm_routing_get_port_mixer,
12737 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012738 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012740 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12741 msm_routing_get_port_mixer,
12742 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012743 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12744 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012745 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12746 msm_routing_get_port_mixer,
12747 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012748 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12749 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012750 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12751 msm_routing_get_port_mixer,
12752 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012753 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12754 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012755 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12756 msm_routing_get_port_mixer,
12757 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012758 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12759 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012760 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12761 msm_routing_get_port_mixer,
12762 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012763 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12764 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012765 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12766 msm_routing_get_port_mixer,
12767 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012768 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12769 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012770 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12771 msm_routing_get_port_mixer,
12772 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012773 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12774 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012775 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12776 msm_routing_get_port_mixer,
12777 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012778 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12779 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012780 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12781 msm_routing_get_port_mixer,
12782 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012783 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12784 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012785 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12786 msm_routing_get_port_mixer,
12787 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012788 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12789 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012790 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12791 msm_routing_get_port_mixer,
12792 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012793 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12794 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012795 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12796 msm_routing_get_port_mixer,
12797 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012798 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12799 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012800 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12801 msm_routing_get_port_mixer,
12802 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012803 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012805 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12806 msm_routing_get_port_mixer,
12807 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012808 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12809 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012810 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12811 msm_routing_get_port_mixer,
12812 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012813 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12814 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012815 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12816 msm_routing_get_port_mixer,
12817 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012818 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012820 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12821 msm_routing_get_port_mixer,
12822 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012823};
12824
12825static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012826 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12827 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012828 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12829 msm_routing_get_port_mixer,
12830 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012831 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12832 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012833 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12834 msm_routing_get_port_mixer,
12835 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012836 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12837 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012838 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12839 msm_routing_get_port_mixer,
12840 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012841 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012843 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12844 msm_routing_get_port_mixer,
12845 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012846 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12847 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012848 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12849 msm_routing_get_port_mixer,
12850 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012851 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12852 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012853 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12854 msm_routing_get_port_mixer,
12855 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012856 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12857 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012858 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12859 msm_routing_get_port_mixer,
12860 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012861 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12862 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012863 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12864 msm_routing_get_port_mixer,
12865 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012866 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12867 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012868 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12869 msm_routing_get_port_mixer,
12870 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012871 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12872 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012873 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12874 msm_routing_get_port_mixer,
12875 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012876 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012878 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12879 msm_routing_get_port_mixer,
12880 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012881 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12882 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012883 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12884 msm_routing_get_port_mixer,
12885 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012886 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12887 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012888 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12889 msm_routing_get_port_mixer,
12890 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012891 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12892 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012893 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12894 msm_routing_get_port_mixer,
12895 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012896 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12897 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012898 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12899 msm_routing_get_port_mixer,
12900 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012901 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12902 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012903 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12904 msm_routing_get_port_mixer,
12905 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012906 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12907 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012908 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12909 msm_routing_get_port_mixer,
12910 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012911 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12912 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012913 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12914 msm_routing_get_port_mixer,
12915 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012916 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12917 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012918 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12919 msm_routing_get_port_mixer,
12920 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012921 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012923 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12924 msm_routing_get_port_mixer,
12925 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012926};
12927
12928static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012929 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12930 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012931 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12932 msm_routing_get_port_mixer,
12933 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012934 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12935 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012936 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12937 msm_routing_get_port_mixer,
12938 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012939 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12940 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012941 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12942 msm_routing_get_port_mixer,
12943 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012944 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12945 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012946 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12947 msm_routing_get_port_mixer,
12948 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012949 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12950 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012951 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12952 msm_routing_get_port_mixer,
12953 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012954 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12955 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012956 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12957 msm_routing_get_port_mixer,
12958 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012959 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12960 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012961 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12962 msm_routing_get_port_mixer,
12963 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012964 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12965 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012966 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12967 msm_routing_get_port_mixer,
12968 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012969 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12970 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012971 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12972 msm_routing_get_port_mixer,
12973 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012974 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12975 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012976 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12977 msm_routing_get_port_mixer,
12978 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012979 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12980 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012981 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12982 msm_routing_get_port_mixer,
12983 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012984 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12985 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012986 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12987 msm_routing_get_port_mixer,
12988 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012989 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12990 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012991 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12992 msm_routing_get_port_mixer,
12993 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012994 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12995 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012996 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12997 msm_routing_get_port_mixer,
12998 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012999 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13000 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013001 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13002 msm_routing_get_port_mixer,
13003 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013004 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13005 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013006 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13007 msm_routing_get_port_mixer,
13008 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013009 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13010 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013011 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13012 msm_routing_get_port_mixer,
13013 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013014 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13015 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013016 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13017 msm_routing_get_port_mixer,
13018 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013019 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13020 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013021 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13022 msm_routing_get_port_mixer,
13023 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013024 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013026 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13027 msm_routing_get_port_mixer,
13028 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013029};
13030
13031static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013032 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13033 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013034 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13035 msm_routing_get_port_mixer,
13036 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013037 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13038 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013039 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13040 msm_routing_get_port_mixer,
13041 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013042 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13043 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013044 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13045 msm_routing_get_port_mixer,
13046 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013047 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13048 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013049 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13050 msm_routing_get_port_mixer,
13051 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013052 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13053 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013054 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13055 msm_routing_get_port_mixer,
13056 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013057 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13058 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013059 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13060 msm_routing_get_port_mixer,
13061 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013062 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13063 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013064 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13065 msm_routing_get_port_mixer,
13066 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013067 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13068 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13070 msm_routing_get_port_mixer,
13071 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013072 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13073 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013074 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13075 msm_routing_get_port_mixer,
13076 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013077 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013079 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13080 msm_routing_get_port_mixer,
13081 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013082 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13083 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013084 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13085 msm_routing_get_port_mixer,
13086 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013087 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13088 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013089 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13090 msm_routing_get_port_mixer,
13091 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013092 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13093 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013094 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13095 msm_routing_get_port_mixer,
13096 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013097 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13098 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013099 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13100 msm_routing_get_port_mixer,
13101 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013102 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13103 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013104 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13105 msm_routing_get_port_mixer,
13106 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013107 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13108 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013109 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13110 msm_routing_get_port_mixer,
13111 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013112 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13113 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013114 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13115 msm_routing_get_port_mixer,
13116 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013117 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013119 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13120 msm_routing_get_port_mixer,
13121 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013122 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13123 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013124 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13125 msm_routing_get_port_mixer,
13126 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013127 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13128 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013129 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13130 msm_routing_get_port_mixer,
13131 msm_routing_put_port_mixer),
13132};
13133
13134static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013135 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13136 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013137 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13138 msm_routing_get_port_mixer,
13139 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013140 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13141 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013142 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13143 msm_routing_get_port_mixer,
13144 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013145 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13146 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013147 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13148 msm_routing_get_port_mixer,
13149 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013150 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13151 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013152 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13153 msm_routing_get_port_mixer,
13154 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013155 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13156 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013157 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13158 msm_routing_get_port_mixer,
13159 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013160 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13161 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013162 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13163 msm_routing_get_port_mixer,
13164 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013165 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013167 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13168 msm_routing_get_port_mixer,
13169 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013170 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13171 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013172 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13173 msm_routing_get_port_mixer,
13174 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013175 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13176 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013177 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13178 msm_routing_get_port_mixer,
13179 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013180 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13181 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013182 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13183 msm_routing_get_port_mixer,
13184 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013185 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13186 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013187 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13188 msm_routing_get_port_mixer,
13189 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013190 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13191 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013192 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13193 msm_routing_get_port_mixer,
13194 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013195 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13196 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013197 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13198 msm_routing_get_port_mixer,
13199 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013200 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13201 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013202 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13203 msm_routing_get_port_mixer,
13204 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013205 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13206 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013207 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13208 msm_routing_get_port_mixer,
13209 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013210 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13211 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013212 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13213 msm_routing_get_port_mixer,
13214 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013215 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13216 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013217 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13218 msm_routing_get_port_mixer,
13219 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013220 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13221 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013222 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13223 msm_routing_get_port_mixer,
13224 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013225 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13226 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013227 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13228 msm_routing_get_port_mixer,
13229 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013230 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13231 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013232 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13233 msm_routing_get_port_mixer,
13234 msm_routing_put_port_mixer),
13235};
13236
13237static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013238 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13239 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013240 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13241 msm_routing_get_port_mixer,
13242 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013243 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13244 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013245 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13246 msm_routing_get_port_mixer,
13247 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013248 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013250 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13251 msm_routing_get_port_mixer,
13252 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013253 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13254 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013255 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13256 msm_routing_get_port_mixer,
13257 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013258 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13259 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013260 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13261 msm_routing_get_port_mixer,
13262 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013263 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13264 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013265 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13266 msm_routing_get_port_mixer,
13267 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013268 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013270 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13271 msm_routing_get_port_mixer,
13272 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013273 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13274 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013275 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13276 msm_routing_get_port_mixer,
13277 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013278 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13279 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013280 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13281 msm_routing_get_port_mixer,
13282 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013283 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13284 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013285 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13286 msm_routing_get_port_mixer,
13287 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013288 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013290 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13291 msm_routing_get_port_mixer,
13292 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013293 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13294 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013295 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13296 msm_routing_get_port_mixer,
13297 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013298 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13299 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013300 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13301 msm_routing_get_port_mixer,
13302 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013303 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013305 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13306 msm_routing_get_port_mixer,
13307 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013308 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13309 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013310 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13311 msm_routing_get_port_mixer,
13312 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013313 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13314 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013315 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13316 msm_routing_get_port_mixer,
13317 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013318 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13319 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013320 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13321 msm_routing_get_port_mixer,
13322 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013323 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013325 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13326 msm_routing_get_port_mixer,
13327 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013328 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13329 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013330 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13331 msm_routing_get_port_mixer,
13332 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013333 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13334 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013335 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13336 msm_routing_get_port_mixer,
13337 msm_routing_put_port_mixer),
13338};
13339
13340static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013341 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13342 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013343 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13344 msm_routing_get_port_mixer,
13345 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013346 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13347 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013348 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13349 msm_routing_get_port_mixer,
13350 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013351 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013353 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13354 msm_routing_get_port_mixer,
13355 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013356 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13357 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013358 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13359 msm_routing_get_port_mixer,
13360 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013361 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13362 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013363 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13364 msm_routing_get_port_mixer,
13365 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013366 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13367 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013368 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13369 msm_routing_get_port_mixer,
13370 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013371 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013373 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13374 msm_routing_get_port_mixer,
13375 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013376 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13377 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013378 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13379 msm_routing_get_port_mixer,
13380 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013381 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13382 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013383 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13384 msm_routing_get_port_mixer,
13385 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013386 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13387 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013388 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13389 msm_routing_get_port_mixer,
13390 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013391 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13392 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013393 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13394 msm_routing_get_port_mixer,
13395 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013396 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13397 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013398 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13399 msm_routing_get_port_mixer,
13400 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013401 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13402 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013403 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13404 msm_routing_get_port_mixer,
13405 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013406 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013408 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13409 msm_routing_get_port_mixer,
13410 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013411 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13412 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013413 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13414 msm_routing_get_port_mixer,
13415 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013416 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13417 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013418 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13419 msm_routing_get_port_mixer,
13420 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013421 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13422 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013423 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13424 msm_routing_get_port_mixer,
13425 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013426 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013428 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13429 msm_routing_get_port_mixer,
13430 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013431 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13432 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013433 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13434 msm_routing_get_port_mixer,
13435 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013436 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13437 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013438 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13439 msm_routing_get_port_mixer,
13440 msm_routing_put_port_mixer),
13441};
13442
13443static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013444 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13445 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013446 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13447 msm_routing_get_port_mixer,
13448 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013449 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13450 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013451 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13452 msm_routing_get_port_mixer,
13453 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013454 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013456 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13457 msm_routing_get_port_mixer,
13458 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013459 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13460 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013461 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13462 msm_routing_get_port_mixer,
13463 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013464 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13465 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013466 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13467 msm_routing_get_port_mixer,
13468 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013469 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13470 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013471 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13472 msm_routing_get_port_mixer,
13473 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013474 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013476 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13477 msm_routing_get_port_mixer,
13478 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013479 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13480 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013481 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13482 msm_routing_get_port_mixer,
13483 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013484 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13485 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013486 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13487 msm_routing_get_port_mixer,
13488 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013489 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13490 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013491 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13492 msm_routing_get_port_mixer,
13493 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013494 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13495 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013496 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13497 msm_routing_get_port_mixer,
13498 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013499 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13500 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013501 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13502 msm_routing_get_port_mixer,
13503 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013504 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13505 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013506 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13507 msm_routing_get_port_mixer,
13508 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013509 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13510 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013511 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13512 msm_routing_get_port_mixer,
13513 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013514 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13515 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013516 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13517 msm_routing_get_port_mixer,
13518 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013519 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13520 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013521 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13522 msm_routing_get_port_mixer,
13523 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013524 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13525 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013526 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13527 msm_routing_get_port_mixer,
13528 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013529 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013531 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13532 msm_routing_get_port_mixer,
13533 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013534 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13535 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013536 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13537 msm_routing_get_port_mixer,
13538 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013539 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13540 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013541 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13542 msm_routing_get_port_mixer,
13543 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013544};
13545
13546static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013547 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13548 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013549 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13550 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013551 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13552 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013553 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13554 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013555 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13556 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013557 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13558 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013559 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13560 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013561 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13562 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013563 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013565 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13566 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013567 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13568 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013569 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13570 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013571 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13572 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013573 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13574 msm_routing_put_port_mixer),
13575};
13576
13577static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013578 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013580 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13581 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013582 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13583 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013584 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13585 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013586 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13587 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013588 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13589 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013590 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13591 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013592 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13593 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013594 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13595 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013596 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13597 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013598 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13599 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013600 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13601 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013602 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13603 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013604 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13605 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013606 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13607 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013608 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13609 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013610 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13611 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080013612 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13613 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614};
13615
13616static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013617 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13618 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013619 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13620 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013621 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13622 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013623 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13624 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013625 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13626 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013627 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13628 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013629 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13630 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013631 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13632 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013633 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13634 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013635 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13636 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013637 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13638 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013639 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13640 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013641 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13642 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013643 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13644 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013645 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13646 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013647 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13648 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013649 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13650 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013651 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13652 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013653 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13654 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013655 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13656 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013657};
13658
13659static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013660 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13661 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013662 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13663 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013664 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
13665 SND_SOC_NOPM,
13666 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013667 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13668 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013669 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13670 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013671 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13672 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013673 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13674 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13676 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013677 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13678 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13680 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013681 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13682 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013683 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13684 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013685 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13686 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013687 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13688 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013689 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13690 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013691 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13692 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013693 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13694 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013695 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13696 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013697 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013699 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13700 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013701};
13702
13703static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013704 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13705 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013706 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13707 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013708 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13709 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013710 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13711 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013712 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013714 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13715 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013716 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13717 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013718 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13719 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013720 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13721 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013722 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13723 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013724 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13725 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013726 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13727 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013728 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13729 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013730 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13731 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013732 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013734 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13735 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013736 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13737 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013738 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13739 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013740 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13741 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013742 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13743 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013744};
13745
13746static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013747 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13748 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013749 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13750 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013751 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13752 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013753 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13754 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013755 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13756 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013757 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13758 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013759 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13760 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013761 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13762 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013763 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13764 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013765 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13766 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013767 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13768 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013769 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13770 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013771 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13772 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013773 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13774 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013775 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13776 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013777 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13778 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013779 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13780 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013781 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13782 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013783 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13784 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013785 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13786 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013787};
13788
13789static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013790 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13791 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013792 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13793 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013794 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13795 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013796 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13797 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013798 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13799 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013800 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13801 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013802 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13803 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013804 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13805 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013806 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13807 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013808 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13809 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013810 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13811 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013812 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13813 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013814 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13815 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013816 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13817 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013818 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13819 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013820 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13821 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013822 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13823 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013824 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13825 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013826 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13827 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013828 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13829 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013830};
13831
13832static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013833 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13834 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013835 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13836 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013837 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13838 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013839 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13840 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013841 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13842 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013843 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13844 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013845 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13846 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013847 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13848 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013849 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013851 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13852 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013853 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13854 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013855 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13856 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013857 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13858 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013859 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13860 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013861 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13862 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013863 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13864 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013865 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13866 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013867 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13868 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013869 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13870 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013871 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13872 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013873};
13874
13875static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013876 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13877 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013878 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13879 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013880 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13881 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013882 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13883 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013884 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13885 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013886 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13887 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013888 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13889 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013890 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13891 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013892 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13893 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13895 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013896 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13897 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013898 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13899 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013900 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13901 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013902 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13903 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013904 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13905 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013906 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13907 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013908 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13909 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013910 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13911 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013912 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13913 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013914 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13915 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013916};
13917
13918static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013919 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13920 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013921 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13922 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013923 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13924 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013925 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13926 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013927 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13928 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013929 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13930 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013931 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13932 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013933 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13934 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013935 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13936 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013937 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13938 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013939 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13940 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013941 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13942 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013943 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13944 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013945 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13946 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013947 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13948 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013949 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13950 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013951 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13952 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013953 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13954 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013955 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13956 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013957 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13958 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013959};
13960
13961static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
13962 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13963 0, 1, 0, msm_routing_get_switch_mixer,
13964 msm_routing_put_switch_mixer);
13965
13966static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
13967 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13968 0, 1, 0, msm_routing_get_switch_mixer,
13969 msm_routing_put_switch_mixer);
13970
13971static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
13972 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13973 0, 1, 0, msm_routing_get_switch_mixer,
13974 msm_routing_put_switch_mixer);
13975
13976static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
13977 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13978 0, 1, 0, msm_routing_get_switch_mixer,
13979 msm_routing_put_switch_mixer);
13980
13981static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
13982 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13983 0, 1, 0, msm_routing_get_switch_mixer,
13984 msm_routing_put_switch_mixer);
13985
13986static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
13987 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13988 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
13989 msm_routing_put_fm_pcmrx_switch_mixer);
13990
13991static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
13992 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13993 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
13994 msm_routing_put_int0_mi2s_switch_mixer);
13995
13996static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
13997 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13998 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
13999 msm_routing_put_int4_mi2s_switch_mixer);
14000
14001static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
14002 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14003 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
14004 msm_routing_put_pri_mi2s_switch_mixer);
14005
14006static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
14007 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14008 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
14009 msm_routing_put_sec_mi2s_switch_mixer);
14010
14011static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
14012 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14013 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
14014 msm_routing_put_tert_mi2s_switch_mixer);
14015
14016static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
14017 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14018 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
14019 msm_routing_put_quat_mi2s_switch_mixer);
14020
Rohit Kumara5077932017-09-10 22:05:05 +053014021static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
14022 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14023 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
14024 msm_routing_put_quin_mi2s_switch_mixer);
14025
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014026static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
14027 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14028 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14029 msm_routing_put_hfp_switch_mixer);
14030
14031static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
14032 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14033 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14034 msm_routing_put_hfp_switch_mixer);
14035
14036static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
14037 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14038 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14039 msm_routing_put_hfp_switch_mixer);
14040
14041static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
14042 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14043 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14044 msm_routing_put_hfp_switch_mixer);
14045
14046static const struct snd_kcontrol_new usb_switch_mixer_controls =
14047 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14048 0, 1, 0, msm_routing_get_usb_switch_mixer,
14049 msm_routing_put_usb_switch_mixer);
14050
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080014051static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
14052 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14053 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
14054 msm_routing_a2dp_switch_mixer_put);
14055
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014056static const struct soc_enum lsm_port_enum =
14057 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
14058
14059static const char * const lsm_func_text[] = {
14060 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
14061};
14062static const struct soc_enum lsm_func_enum =
14063 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
14064
14065static const struct snd_kcontrol_new lsm_controls[] = {
14066 /* kcontrol of lsm_function */
14067 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14068 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14069 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14070 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14071 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14072 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14073 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14074 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14075 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14076 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14077 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14078 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14079 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14080 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14081 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14082 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14083 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14084 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Ashish Jain01b10322018-05-12 15:37:44 +053014085 SOC_ENUM_EXT(PRI_TDM_TX_2_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14086 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14087 SOC_ENUM_EXT(PRI_TDM_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14088 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014089 /* kcontrol of lsm_port */
14090 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
14091 msm_routing_lsm_port_get,
14092 msm_routing_lsm_port_put),
14093 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
14094 msm_routing_lsm_port_get,
14095 msm_routing_lsm_port_put),
14096 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
14097 msm_routing_lsm_port_get,
14098 msm_routing_lsm_port_put),
14099 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
14100 msm_routing_lsm_port_get,
14101 msm_routing_lsm_port_put),
14102 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
14103 msm_routing_lsm_port_get,
14104 msm_routing_lsm_port_put),
14105 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
14106 msm_routing_lsm_port_get,
14107 msm_routing_lsm_port_put),
14108 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
14109 msm_routing_lsm_port_get,
14110 msm_routing_lsm_port_put),
14111 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
14112 msm_routing_lsm_port_get,
14113 msm_routing_lsm_port_put),
14114};
14115
14116static const char * const aanc_slim_0_rx_text[] = {
14117 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
14118 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
14119};
14120
14121static const struct soc_enum aanc_slim_0_rx_enum =
14122 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
14123 aanc_slim_0_rx_text);
14124
14125static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
14126 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
14127 msm_routing_slim_0_rx_aanc_mux_get,
14128 msm_routing_slim_0_rx_aanc_mux_put)
14129};
14130
14131static int msm_routing_get_stereo_to_custom_stereo_control(
14132 struct snd_kcontrol *kcontrol,
14133 struct snd_ctl_elem_value *ucontrol)
14134{
14135 ucontrol->value.integer.value[0] = is_custom_stereo_on;
14136 return 0;
14137}
14138
14139static int msm_routing_put_stereo_to_custom_stereo_control(
14140 struct snd_kcontrol *kcontrol,
14141 struct snd_ctl_elem_value *ucontrol)
14142{
14143 int flag = 0, i = 0, rc = 0, idx = 0;
14144 int be_index = 0, port_id, topo_id;
14145 unsigned int session_id = 0;
14146 uint16_t op_FL_ip_FL_weight = 0;
14147 uint16_t op_FL_ip_FR_weight = 0;
14148 uint16_t op_FR_ip_FL_weight = 0;
14149 uint16_t op_FR_ip_FR_weight = 0;
14150
14151 flag = ucontrol->value.integer.value[0];
14152 pr_debug("%s E flag %d\n", __func__, flag);
14153
14154 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
14155 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
14156 __func__, is_custom_stereo_on, flag);
14157 return 0;
14158 }
14159 is_custom_stereo_on = flag ? true : false;
14160 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
14161 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
14162 port_id = msm_bedais[be_index].port_id;
14163 if (!msm_bedais[be_index].active)
14164 continue;
14165 if ((port_id != SLIMBUS_0_RX) &&
14166 (port_id != RT_PROXY_PORT_001_RX) &&
14167 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
14168 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
14169 continue;
14170
14171 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
14172 MSM_FRONTEND_DAI_MM_SIZE) {
14173 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
14174 LEGACY_PCM_MODE)
14175 goto skip_send_custom_stereo;
14176 session_id =
14177 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
14178 if (is_custom_stereo_on) {
14179 op_FL_ip_FL_weight =
14180 Q14_GAIN_ZERO_POINT_FIVE;
14181 op_FL_ip_FR_weight =
14182 Q14_GAIN_ZERO_POINT_FIVE;
14183 op_FR_ip_FL_weight =
14184 Q14_GAIN_ZERO_POINT_FIVE;
14185 op_FR_ip_FR_weight =
14186 Q14_GAIN_ZERO_POINT_FIVE;
14187 } else {
14188 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
14189 op_FL_ip_FR_weight = 0;
14190 op_FR_ip_FL_weight = 0;
14191 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
14192 }
14193 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
14194 unsigned long copp =
14195 session_copp_map[i]
14196 [SESSION_TYPE_RX][be_index];
14197 if (!test_bit(idx, &copp))
14198 goto skip_send_custom_stereo;
14199 topo_id = adm_get_topology_for_port_copp_idx(
14200 msm_bedais[be_index].port_id, idx);
14201 if (topo_id < 0)
14202 pr_debug("%s:Err:custom stereo topo %d",
14203 __func__, topo_id);
14204 pr_debug("idx %d\n", idx);
14205 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
14206 rc = msm_ds2_dap_set_custom_stereo_onoff
14207 (msm_bedais[be_index].port_id,
14208 idx, is_custom_stereo_on);
14209 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
14210 rc = dolby_dap_set_custom_stereo_onoff(
14211 msm_bedais[be_index].port_id,
14212 idx, is_custom_stereo_on);
14213 else
14214 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
14215 (msm_bedais[be_index].port_id,
14216 idx, session_id,
14217 op_FL_ip_FL_weight,
14218 op_FL_ip_FR_weight,
14219 op_FR_ip_FL_weight,
14220 op_FR_ip_FR_weight);
14221 if (rc < 0)
14222skip_send_custom_stereo:
14223 pr_err("%s: err setting custom stereo\n",
14224 __func__);
14225 }
14226
14227 }
14228 }
14229 return 0;
14230}
14231
14232static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
14233 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
14234 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
14235 msm_routing_put_stereo_to_custom_stereo_control),
14236};
14237
14238static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14239 struct snd_ctl_elem_value *ucontrol)
14240{
14241 return 0;
14242}
14243
14244static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14245 struct snd_ctl_elem_value *ucontrol)
14246{
14247 int i = 0, j;
14248 int num_app_types = ucontrol->value.integer.value[i++];
14249
14250 pr_debug("%s\n", __func__);
14251
14252 memset(app_type_cfg, 0, MAX_APP_TYPES*
14253 sizeof(struct msm_pcm_routing_app_type_data));
14254 if (num_app_types > MAX_APP_TYPES) {
14255 pr_err("%s: number of app types exceed the max supported\n",
14256 __func__);
14257 return -EINVAL;
14258 }
14259 for (j = 0; j < num_app_types; j++) {
14260 app_type_cfg[j].app_type =
14261 ucontrol->value.integer.value[i++];
14262 app_type_cfg[j].sample_rate =
14263 ucontrol->value.integer.value[i++];
14264 app_type_cfg[j].bit_width =
14265 ucontrol->value.integer.value[i++];
14266 }
14267
14268 return 0;
14269}
14270
14271static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
14272 struct snd_ctl_elem_value *ucontrol)
14273{
14274 int j, fe_id, be_id, port_type;
14275 int ret = 0;
14276 unsigned long copp;
14277 struct msm_pcm_routing_bdai_data *bedai;
14278 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14279 SESSION_TYPE_RX;
14280 int app_type = ucontrol->value.integer.value[1];
14281 int gain = (ucontrol->value.integer.value[2] +
14282 ucontrol->value.integer.value[3])/2;
14283
14284 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14285 MSM_AFE_PORT_TYPE_TX;
14286
14287 mutex_lock(&routing_lock);
14288 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14289 if (is_be_dai_extproc(be_id))
14290 continue;
14291
14292 bedai = &msm_bedais[be_id];
14293 if (afe_get_port_type(bedai->port_id) != port_type)
14294 continue;
14295
14296 if (!bedai->active)
14297 continue;
14298
14299 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14300 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14301 continue;
14302
14303 if (app_type !=
14304 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14305 continue;
14306
14307 copp = session_copp_map[fe_id][dir][be_id];
14308 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
14309 if (!test_bit(j, &copp))
14310 continue;
14311 ret |= adm_set_volume(bedai->port_id, j, gain);
14312 }
14313 }
14314 }
14315 mutex_unlock(&routing_lock);
14316 return ret ? -EINVAL : 0;
14317}
14318
14319static const struct snd_kcontrol_new app_type_cfg_controls[] = {
14320 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
14321 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
14322 msm_routing_put_app_type_cfg_control),
14323 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
14324 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
14325};
14326
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014327static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
14328 struct snd_ctl_elem_value *ucontrol)
14329{
14330 int copp_idx, fe_id, be_id, port_type;
14331 int ret = 0;
14332 unsigned long copp;
14333 struct msm_pcm_routing_bdai_data *bedai;
14334 char *param_data = NULL;
14335 uint32_t *update_param_data = NULL;
14336 uint32_t param_size = sizeof(uint32_t) +
14337 sizeof(struct adm_param_data_v5);
14338 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14339 SESSION_TYPE_RX;
14340 int app_type = ucontrol->value.integer.value[1];
14341 int module_id = ucontrol->value.integer.value[2];
14342 int instance_id = ucontrol->value.integer.value[3];
14343 int param_id = ucontrol->value.integer.value[4];
14344 int param_value = ucontrol->value.integer.value[5];
14345
14346 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14347 MSM_AFE_PORT_TYPE_TX;
14348 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
14349 __func__, app_type, module_id,
14350 instance_id, param_id, param_value);
14351
14352 param_data = kzalloc(param_size, GFP_KERNEL);
14353 if (!param_data)
14354 return -ENOMEM;
14355
14356 update_param_data = (uint32_t *)param_data;
14357 *update_param_data++ = module_id;
14358 *update_param_data++ = param_id;
14359 *update_param_data++ = sizeof(uint32_t);
14360 *update_param_data++ = param_value;
14361
14362 mutex_lock(&routing_lock);
14363 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14364 if (is_be_dai_extproc(be_id))
14365 continue;
14366
14367 bedai = &msm_bedais[be_id];
14368 if (afe_get_port_type(bedai->port_id) != port_type)
14369 continue;
14370
14371 if (!bedai->active)
14372 continue;
14373
14374 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14375 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14376 continue;
14377
14378 if (app_type !=
14379 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14380 continue;
14381
14382 copp = session_copp_map[fe_id][dir][be_id];
14383 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
14384 copp_idx++) {
14385 if (!test_bit(copp_idx, &copp))
14386 continue;
14387
14388 ret = adm_send_params_v5(bedai->port_id,
14389 copp_idx,
14390 param_data,
14391 param_size);
14392 if (ret) {
14393 pr_err("%s: Setting param failed with err=%d\n",
14394 __func__, ret);
14395 ret = -EINVAL;
14396 goto done;
14397 }
14398 }
14399 }
14400 }
14401done:
14402 mutex_unlock(&routing_lock);
14403 kfree(param_data);
14404 return ret;
14405}
14406
14407static const struct snd_kcontrol_new module_cfg_controls[] = {
14408 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
14409 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
14410};
14411
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014412static int msm_routing_get_lsm_app_type_cfg_control(
14413 struct snd_kcontrol *kcontrol,
14414 struct snd_ctl_elem_value *ucontrol)
14415{
14416 return 0;
14417}
14418
14419static int msm_routing_put_lsm_app_type_cfg_control(
14420 struct snd_kcontrol *kcontrol,
14421 struct snd_ctl_elem_value *ucontrol)
14422{
14423 int i = 0, j;
Ajit Pandey9faede32019-09-06 10:51:02 +053014424 int num_app_types;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014425
Ajit Pandey9faede32019-09-06 10:51:02 +053014426 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014427 pr_err("%s: number of app types exceed the max supported\n",
14428 __func__);
14429 return -EINVAL;
14430 }
Ajit Pandey9faede32019-09-06 10:51:02 +053014431
14432 num_app_types = ucontrol->value.integer.value[i++];
14433 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
14434 sizeof(struct msm_pcm_routing_app_type_data));
14435
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014436 for (j = 0; j < num_app_types; j++) {
14437 lsm_app_type_cfg[j].app_type =
14438 ucontrol->value.integer.value[i++];
14439 lsm_app_type_cfg[j].sample_rate =
14440 ucontrol->value.integer.value[i++];
14441 lsm_app_type_cfg[j].bit_width =
14442 ucontrol->value.integer.value[i++];
14443 }
14444
14445 return 0;
14446}
14447
14448static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
14449 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
14450 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
14451 msm_routing_put_lsm_app_type_cfg_control),
14452};
14453
14454static int msm_routing_get_use_ds1_or_ds2_control(
14455 struct snd_kcontrol *kcontrol,
14456 struct snd_ctl_elem_value *ucontrol)
14457{
14458 ucontrol->value.integer.value[0] = is_ds2_on;
14459 return 0;
14460}
14461
14462static int msm_routing_put_use_ds1_or_ds2_control(
14463 struct snd_kcontrol *kcontrol,
14464 struct snd_ctl_elem_value *ucontrol)
14465{
14466 is_ds2_on = ucontrol->value.integer.value[0];
14467 return 0;
14468}
14469
14470static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
14471 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
14472 1, 0, msm_routing_get_use_ds1_or_ds2_control,
14473 msm_routing_put_use_ds1_or_ds2_control),
14474};
14475
14476int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
14477 struct snd_ctl_elem_value *ucontrol) {
14478 int rc = 0;
14479 int be_idx = 0;
14480 char *param_value;
14481 int *update_param_value;
14482 uint32_t param_length = sizeof(uint32_t);
14483 uint32_t param_payload_len = RMS_PAYLOAD_LEN * sizeof(uint32_t);
14484
14485 param_value = kzalloc(param_length + param_payload_len, GFP_KERNEL);
14486 if (!param_value)
14487 return -ENOMEM;
14488
14489 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
14490 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
14491 break;
14492 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
14493 rc = adm_get_params(SLIMBUS_0_TX, 0,
14494 RMS_MODULEID_APPI_PASSTHRU,
14495 RMS_PARAM_FIRST_SAMPLE,
14496 param_length + param_payload_len,
14497 param_value);
14498 if (rc) {
14499 pr_err("%s: get parameters failed:%d\n", __func__, rc);
14500 kfree(param_value);
14501 return -EINVAL;
14502 }
14503 update_param_value = (int *)param_value;
14504 ucontrol->value.integer.value[0] = update_param_value[0];
14505
14506 pr_debug("%s: FROM DSP value[0] 0x%x\n",
14507 __func__, update_param_value[0]);
14508 }
14509 kfree(param_value);
14510 return 0;
14511}
14512
14513static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
14514 struct snd_ctl_elem_value *ucontrol)
14515{
14516 voc_session_id = ucontrol->value.integer.value[0];
14517
14518 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
14519
14520 return 0;
14521}
14522
14523static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
14524 struct snd_ctl_elem_value *ucontrol)
14525{
14526 ucontrol->value.integer.value[0] = voc_session_id;
14527
14528 return 0;
14529}
14530
14531static struct snd_kcontrol_new msm_voc_session_controls[] = {
14532 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
14533 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
14534 msm_voc_session_id_put),
14535};
14536
14537static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
14538 struct snd_ctl_elem_info *uinfo)
14539{
14540 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
14541 uinfo->count = sizeof(struct sound_focus_param);
14542
14543 return 0;
14544}
14545
14546static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
14547 struct snd_ctl_elem_value *ucontrol)
14548{
14549 int ret = 0;
14550 struct sound_focus_param soundFocusData;
14551
14552 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
14553 sizeof(struct sound_focus_param));
14554 ret = voc_set_sound_focus(soundFocusData);
14555 if (ret) {
14556 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
14557 __func__, ret);
14558
14559 ret = -EINVAL;
14560 }
14561
14562 return ret;
14563}
14564
14565static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
14566 struct snd_ctl_elem_value *ucontrol)
14567{
14568 int ret = 0;
14569 struct sound_focus_param soundFocusData;
14570
14571 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
14572
14573 ret = voc_get_sound_focus(&soundFocusData);
14574 if (ret) {
14575 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
14576 __func__, ret);
14577
14578 ret = -EINVAL;
14579 goto done;
14580 }
14581 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
14582 sizeof(struct sound_focus_param));
14583
14584done:
14585 return ret;
14586}
14587
14588static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
14589 struct snd_ctl_elem_info *uinfo)
14590{
14591 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
14592 uinfo->count = sizeof(struct source_tracking_param);
14593
14594 return 0;
14595}
14596
14597static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
14598 struct snd_ctl_elem_value *ucontrol)
14599{
14600 int ret = 0;
14601 struct source_tracking_param sourceTrackingData;
14602
14603 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
14604
14605 ret = voc_get_source_tracking(&sourceTrackingData);
14606 if (ret) {
14607 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
14608 __func__, ret);
14609
14610 ret = -EINVAL;
14611 goto done;
14612 }
14613 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
14614 sizeof(struct source_tracking_param));
14615
14616done:
14617 return ret;
14618}
14619
14620static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
14621 int *copp_idx)
14622{
14623 int i, idx, be_idx;
14624 int ret = 0;
14625 unsigned long copp;
14626
14627 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
14628
14629 ret = q6audio_validate_port(port_id);
14630 if (ret < 0) {
14631 pr_err("%s: port validation failed id 0x%x ret %d\n",
14632 __func__, port_id, ret);
14633
14634 ret = -EINVAL;
14635 goto done;
14636 }
14637
14638 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
14639 if (msm_bedais[be_idx].port_id == port_id)
14640 break;
14641 }
14642 if (be_idx >= MSM_BACKEND_DAI_MAX) {
14643 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
14644
14645 ret = -EINVAL;
14646 goto done;
14647 }
14648
14649 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
14650 MSM_FRONTEND_DAI_MM_SIZE) {
14651 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
14652 copp = session_copp_map[i]
14653 [session_type][be_idx];
14654 if (test_bit(idx, &copp))
14655 break;
14656 }
14657 if (idx >= MAX_COPPS_PER_PORT)
14658 continue;
14659 else
14660 break;
14661 }
14662 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
14663 pr_err("%s: Invalid FE, exiting\n", __func__);
14664
14665 ret = -EINVAL;
14666 goto done;
14667 }
14668 *copp_idx = idx;
14669 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
14670
14671done:
14672 return ret;
14673}
14674
14675static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
14676 const char *prefix, int *port_id)
14677{
14678 int ret = 0;
14679
14680 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
14681
14682 /*
14683 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
14684 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
14685 * and compare the string with the backend name to derive the port id.
14686 */
14687 if (!strcmp(kcontrol->id.name + strlen(prefix),
14688 "SLIMBUS_0")) {
14689 *port_id = SLIMBUS_0_TX;
14690 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14691 "TERT_MI2S")) {
14692 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
14693 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14694 "INT3_MI2S")) {
14695 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Sachin Mohan Gadag8c6e2db2018-07-16 19:53:19 +053014696 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14697 "PRIMARY_TDM")) {
14698 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014699 } else {
14700 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
14701 __func__, kcontrol->id.name);
14702
14703 ret = -EINVAL;
14704 goto done;
14705 }
14706 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
14707 __func__, kcontrol->id.name, *port_id);
14708
14709done:
14710 return ret;
14711}
14712
14713static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
14714 struct snd_ctl_elem_value *ucontrol)
14715{
14716 int ret = 0;
14717 struct sound_focus_param soundFocusData;
14718 int port_id, copp_idx;
14719
14720 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14721 "Sound Focus Audio Tx ", &port_id);
14722 if (ret != 0) {
14723 pr_err("%s: Error in deriving port id, err=%d\n",
14724 __func__, ret);
14725
14726 ret = -EINVAL;
14727 goto done;
14728 }
14729
14730 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14731 &copp_idx);
14732 if (ret) {
14733 pr_err("%s: Could not get copp idx for port_id=%d\n",
14734 __func__, port_id);
14735
14736 ret = -EINVAL;
14737 goto done;
14738 }
14739
14740 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
14741 sizeof(struct sound_focus_param));
14742
14743 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
14744 if (ret) {
14745 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
14746 __func__, ret);
14747
14748 ret = -EINVAL;
14749 goto done;
14750 }
14751
14752done:
14753 return ret;
14754}
14755
14756static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
14757 struct snd_ctl_elem_value *ucontrol)
14758{
14759 int ret = 0;
14760 struct sound_focus_param soundFocusData;
14761 int port_id, copp_idx;
14762
14763 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14764 "Sound Focus Audio Tx ", &port_id);
14765 if (ret) {
14766 pr_err("%s: Error in deriving port id, err=%d\n",
14767 __func__, ret);
14768
14769 ret = -EINVAL;
14770 goto done;
14771 }
14772
14773 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14774 &copp_idx);
14775 if (ret) {
14776 pr_err("%s: Could not get copp idx for port_id=%d\n",
14777 __func__, port_id);
14778
14779 ret = -EINVAL;
14780 goto done;
14781 }
14782
14783 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
14784 if (ret) {
14785 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
14786 __func__, ret);
14787
14788 ret = -EINVAL;
14789 goto done;
14790 }
14791
14792 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
14793 sizeof(struct sound_focus_param));
14794
14795done:
14796 return ret;
14797}
14798
14799static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
14800 struct snd_ctl_elem_value *ucontrol)
14801{
14802 int ret = 0;
14803 struct source_tracking_param sourceTrackingData;
14804 int port_id, copp_idx;
14805
14806 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14807 "Source Tracking Audio Tx ", &port_id);
14808 if (ret) {
14809 pr_err("%s: Error in deriving port id, err=%d\n",
14810 __func__, ret);
14811
14812 ret = -EINVAL;
14813 goto done;
14814 }
14815
14816 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14817 &copp_idx);
14818 if (ret) {
14819 pr_err("%s: Could not get copp idx for port_id=%d\n",
14820 __func__, port_id);
14821
14822 ret = -EINVAL;
14823 goto done;
14824 }
14825
14826 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
14827 if (ret) {
14828 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
14829 __func__, ret);
14830
14831 ret = -EINVAL;
14832 goto done;
14833 }
14834
14835 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
14836 sizeof(struct source_tracking_param));
14837
14838done:
14839 return ret;
14840}
14841
14842static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
14843 {
14844 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14845 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14846 .name = "Sound Focus Voice Tx SLIMBUS_0",
14847 .info = msm_sound_focus_info,
14848 .get = msm_voice_sound_focus_get,
14849 .put = msm_voice_sound_focus_put,
14850 },
14851 {
14852 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14853 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14854 .name = "Source Tracking Voice Tx SLIMBUS_0",
14855 .info = msm_source_tracking_info,
14856 .get = msm_voice_source_tracking_get,
14857 },
14858 {
14859 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14860 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14861 .name = "Sound Focus Audio Tx SLIMBUS_0",
14862 .info = msm_sound_focus_info,
14863 .get = msm_audio_sound_focus_get,
14864 .put = msm_audio_sound_focus_put,
14865 },
14866 {
14867 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14868 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14869 .name = "Source Tracking Audio Tx SLIMBUS_0",
14870 .info = msm_source_tracking_info,
14871 .get = msm_audio_source_tracking_get,
14872 },
14873 {
14874 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14875 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14876 .name = "Sound Focus Voice Tx TERT_MI2S",
14877 .info = msm_sound_focus_info,
14878 .get = msm_voice_sound_focus_get,
14879 .put = msm_voice_sound_focus_put,
14880 },
14881 {
14882 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14883 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14884 .name = "Source Tracking Voice Tx TERT_MI2S",
14885 .info = msm_source_tracking_info,
14886 .get = msm_voice_source_tracking_get,
14887 },
14888 {
14889 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14890 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14891 .name = "Sound Focus Audio Tx TERT_MI2S",
14892 .info = msm_sound_focus_info,
14893 .get = msm_audio_sound_focus_get,
14894 .put = msm_audio_sound_focus_put,
14895 },
14896 {
14897 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14898 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14899 .name = "Source Tracking Audio Tx TERT_MI2S",
14900 .info = msm_source_tracking_info,
14901 .get = msm_audio_source_tracking_get,
14902 },
14903 {
14904 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14905 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14906 .name = "Sound Focus Voice Tx INT3_MI2S",
14907 .info = msm_sound_focus_info,
14908 .get = msm_voice_sound_focus_get,
14909 .put = msm_voice_sound_focus_put,
14910 },
14911 {
14912 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14913 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14914 .name = "Source Tracking Voice Tx INT3_MI2S",
14915 .info = msm_source_tracking_info,
14916 .get = msm_voice_source_tracking_get,
14917 },
14918 {
14919 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14920 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14921 .name = "Sound Focus Audio Tx INT3_MI2S",
14922 .info = msm_sound_focus_info,
14923 .get = msm_audio_sound_focus_get,
14924 .put = msm_audio_sound_focus_put,
14925 },
14926 {
14927 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14928 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14929 .name = "Source Tracking Audio Tx INT3_MI2S",
14930 .info = msm_source_tracking_info,
14931 .get = msm_audio_source_tracking_get,
14932 },
Sachin Mohan Gadag8c6e2db2018-07-16 19:53:19 +053014933 {
14934 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14935 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14936 .name = "Sound Focus Audio Tx PRIMARY_TDM",
14937 .info = msm_sound_focus_info,
14938 .get = msm_audio_sound_focus_get,
14939 .put = msm_audio_sound_focus_put,
14940 },
14941 {
14942 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14943 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14944 .name = "Source Tracking Audio Tx PRIMARY_TDM",
14945 .info = msm_source_tracking_info,
14946 .get = msm_audio_source_tracking_get,
14947 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014948};
14949
14950static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
14951 struct snd_ctl_elem_value *ucontrol)
14952{
14953 int ret = 0;
14954 int item;
14955 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
14956
14957 pr_debug("%s item is %d\n", __func__,
14958 ucontrol->value.enumerated.item[0]);
14959 mutex_lock(&routing_lock);
14960 item = ucontrol->value.enumerated.item[0];
14961 if (item < e->items) {
14962 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
14963 __func__, e->shift_l, e->values[item]);
14964 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
14965 e->values[item] < MSM_BACKEND_DAI_MAX)
14966 /* Enable feedback TX path */
14967 ret = afe_spk_prot_feed_back_cfg(
14968 msm_bedais[e->values[item]].port_id,
14969 msm_bedais[e->shift_l].port_id, 1, 0, 1);
14970 else {
14971 pr_debug("%s values are out of range item %d\n",
14972 __func__, e->values[item]);
14973 /* Disable feedback TX path */
14974 if (e->values[item] == MSM_BACKEND_DAI_MAX)
14975 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
14976 else
14977 ret = -EINVAL;
14978 }
14979 } else {
14980 pr_err("%s item value is out of range item\n", __func__);
14981 ret = -EINVAL;
14982 }
14983 mutex_unlock(&routing_lock);
14984 return ret;
14985}
14986
14987static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
14988 struct snd_ctl_elem_value *ucontrol)
14989{
14990 int ret = 0;
14991 int item;
14992 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
14993
14994 pr_debug("%s item is %d\n", __func__,
14995 ucontrol->value.enumerated.item[0]);
14996 mutex_lock(&routing_lock);
14997 item = ucontrol->value.enumerated.item[0];
14998 if (item < e->items) {
14999 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
15000 __func__, e->shift_l, e->values[item]);
15001 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
15002 e->values[item] < MSM_BACKEND_DAI_MAX)
15003 /* Enable feedback TX path */
15004 ret = afe_spk_prot_feed_back_cfg(
15005 msm_bedais[e->values[item]].port_id,
15006 msm_bedais[e->shift_l].port_id,
15007 1, 1, 1);
15008 else {
15009 pr_debug("%s values are out of range item %d\n",
15010 __func__, e->values[item]);
15011 /* Disable feedback TX path */
15012 if (e->values[item] == MSM_BACKEND_DAI_MAX)
15013 ret = afe_spk_prot_feed_back_cfg(0,
15014 0, 0, 0, 0);
15015 else
15016 ret = -EINVAL;
15017 }
15018 } else {
15019 pr_err("%s item value is out of range item\n", __func__);
15020 ret = -EINVAL;
15021 }
15022 mutex_unlock(&routing_lock);
15023 return ret;
15024}
15025
15026static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
15027 struct snd_ctl_elem_value *ucontrol)
15028{
15029 pr_debug("%s\n", __func__);
15030 return 0;
15031}
15032
15033static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
15034 struct snd_ctl_elem_value *ucontrol)
15035{
15036 pr_debug("%s\n", __func__);
15037 ucontrol->value.enumerated.item[0] = 0;
15038 return 0;
15039}
15040
15041static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
15042 "ZERO", "SLIM4_TX"
15043};
15044
15045static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
15046 "ZERO", "SLIM4_TX"
15047};
15048
15049static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
15050 "ZERO", "SENARY_TX"
15051};
15052
15053static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
15054 "ZERO", "INT5_MI2S_TX"
15055};
15056
15057static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
15058 "ZERO", "INT5_MI2S_TX"
15059};
15060
15061static const int const slim0_rx_vi_fb_tx_lch_value[] = {
15062 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15063};
15064
15065static const int const slim0_rx_vi_fb_tx_rch_value[] = {
15066 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15067};
15068
15069static const int const mi2s_rx_vi_fb_tx_value[] = {
15070 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
15071};
15072
15073static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
15074 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15075};
15076
15077static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
15078 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15079};
15080
15081static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015082 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015083 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
15084 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
15085
15086static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015087 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015088 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
15089 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
15090
15091static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015092 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015093 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
15094 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
15095
15096static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015097 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015098 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
15099 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
15100 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
15101
15102static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015103 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015104 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
15105 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
15106 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
15107
15108static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
15109 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
15110 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
15111 spkr_prot_put_vi_lch_port);
15112
15113static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
15114 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
15115 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
15116 spkr_prot_put_vi_rch_port);
15117
15118static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
15119 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
15120 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
15121 spkr_prot_put_vi_lch_port);
15122
15123static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
15124 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
15125 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
15126 spkr_prot_put_vi_lch_port);
15127
15128static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
15129 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
15130 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
15131 spkr_prot_put_vi_rch_port);
15132
15133static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
15134 /* Frontend AIF */
15135 /* Widget name equals to Front-End DAI name<Need confirmation>,
15136 * Stream name must contains substring of front-end dai name
15137 */
15138 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
15139 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
15140 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
15141 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
15142 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
15143 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
15144 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
15145 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
15146 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
15147 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
15148 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
15149 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
15150 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
15151 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
15152 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
15153 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
15154 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Ramjee Singh29973d72020-03-06 09:21:43 +053015155 SND_SOC_DAPM_AIF_IN("MM_DL30", "MultiMedia30 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015156 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
15157 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
15158 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
15159 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
15160 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
15161 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
15162 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
15163 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
15164 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053015165 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053015166 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015167 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
15168 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
15169 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
15170 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Meng Wangbe8194e2018-04-25 10:40:01 +080015171 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
15172 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015173 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
15174 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
15175 "VoiceMMode1 Playback", 0, 0, 0, 0),
15176 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
15177 "VoiceMMode1 Capture", 0, 0, 0, 0),
15178 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
15179 "VoiceMMode2 Playback", 0, 0, 0, 0),
15180 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
15181 "VoiceMMode2 Capture", 0, 0, 0, 0),
15182 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
15183 0, 0, 0, 0),
15184 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
15185 0, 0, 0, 0),
15186 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
15187 0, 0, 0, 0),
15188 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
15189 0, 0, 0, 0),
15190 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
15191 0, 0, 0, 0),
15192 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
15193 0, 0, 0, 0),
15194 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
15195 0, 0, 0, 0),
15196 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
15197 0, 0, 0, 0),
15198 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
15199 0, 0, 0, 0),
15200 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
15201 0, 0, 0, 0),
15202 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
15203 0, 0, 0, 0),
15204 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
15205 0, 0, 0, 0),
15206 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
15207 0, 0, 0, 0),
15208 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
15209 0, 0, 0, 0),
15210 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
15211 0, 0, 0, 0),
15212 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
15213 0, 0, 0, 0),
15214 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
15215 0, 0, 0, 0),
15216 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
15217 0, 0, 0, 0),
15218 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
15219 0, 0, 0, 0),
15220 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
15221 0, 0, 0, 0),
15222 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
15223 0, 0, 0, 0),
15224 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
15225 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
15226 0, 0, 0, 0),
15227 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
15228 "INT0 MI2S_RX Hostless Playback",
15229 0, 0, 0, 0),
15230 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
15231 "INT4 MI2S_RX Hostless Playback",
15232 0, 0, 0, 0),
15233 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
15234 "Primary MI2S_RX Hostless Playback",
15235 0, 0, 0, 0),
15236 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
15237 "Secondary MI2S_RX Hostless Playback",
15238 0, 0, 0, 0),
15239 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
15240 "Tertiary MI2S_RX Hostless Playback",
15241 0, 0, 0, 0),
15242 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
15243 "Quaternary MI2S_RX Hostless Playback",
15244 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015245 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
15246 "Quinary MI2S_RX Hostless Playback",
15247 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015248
15249 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
15250 0, 0, 0, 0),
15251 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
15252 0, 0, 0, 0),
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080015253 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
15254 0, 0, 0, 0),
15255 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
15256 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015257 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
15258 0, 0, 0, 0),
15259 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
15260 "INT3 MI2S_TX Hostless Capture",
15261 0, 0, 0, 0),
15262 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
15263 "Tertiary MI2S_TX Hostless Capture",
15264 0, 0, 0, 0),
15265 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
15266 "Secondary MI2S_TX Hostless Capture",
15267 0, 0, 0, 0),
15268 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
15269 "Primary MI2S_TX Hostless Capture",
15270 0, 0, 0, 0),
15271 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
15272 0, 0, 0, 0),
15273 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
15274 0, 0, 0, 0),
15275 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
15276 "Quaternary MI2S_TX Hostless Capture",
15277 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015278 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
15279 "Quinary MI2S_TX Hostless Capture",
15280 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015281
15282 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
15283 "Primary TDM0 Hostless Playback",
15284 0, 0, 0, 0),
15285 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
15286 "Primary TDM0 Hostless Capture",
15287 0, 0, 0, 0),
15288 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
15289 "Primary TDM1 Hostless Playback",
15290 0, 0, 0, 0),
15291 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
15292 "Primary TDM1 Hostless Capture",
15293 0, 0, 0, 0),
15294 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
15295 "Primary TDM2 Hostless Playback",
15296 0, 0, 0, 0),
15297 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
15298 "Primary TDM2 Hostless Capture",
15299 0, 0, 0, 0),
15300 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
15301 "Primary TDM3 Hostless Playback",
15302 0, 0, 0, 0),
15303 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
15304 "Primary TDM3 Hostless Capture",
15305 0, 0, 0, 0),
15306 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
15307 "Primary TDM4 Hostless Playback",
15308 0, 0, 0, 0),
15309 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
15310 "Primary TDM4 Hostless Capture",
15311 0, 0, 0, 0),
15312 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
15313 "Primary TDM5 Hostless Playback",
15314 0, 0, 0, 0),
15315 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
15316 "Primary TDM5 Hostless Capture",
15317 0, 0, 0, 0),
15318 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
15319 "Primary TDM6 Hostless Playback",
15320 0, 0, 0, 0),
15321 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
15322 "Primary TDM6 Hostless Capture",
15323 0, 0, 0, 0),
15324 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
15325 "Primary TDM7 Hostless Playback",
15326 0, 0, 0, 0),
15327 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
15328 "Primary TDM7 Hostless Capture",
15329 0, 0, 0, 0),
15330 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
15331 "Secondary TDM0 Hostless Playback",
15332 0, 0, 0, 0),
15333 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
15334 "Secondary TDM0 Hostless Capture",
15335 0, 0, 0, 0),
15336 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
15337 "Secondary TDM1 Hostless Playback",
15338 0, 0, 0, 0),
15339 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
15340 "Secondary TDM1 Hostless Capture",
15341 0, 0, 0, 0),
15342 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
15343 "Secondary TDM2 Hostless Playback",
15344 0, 0, 0, 0),
15345 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
15346 "Secondary TDM2 Hostless Capture",
15347 0, 0, 0, 0),
15348 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
15349 "Secondary TDM3 Hostless Playback",
15350 0, 0, 0, 0),
15351 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
15352 "Secondary TDM3 Hostless Capture",
15353 0, 0, 0, 0),
15354 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
15355 "Secondary TDM4 Hostless Playback",
15356 0, 0, 0, 0),
15357 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
15358 "Secondary TDM4 Hostless Capture",
15359 0, 0, 0, 0),
15360 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
15361 "Secondary TDM5 Hostless Playback",
15362 0, 0, 0, 0),
15363 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
15364 "Secondary TDM5 Hostless Capture",
15365 0, 0, 0, 0),
15366 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
15367 "Secondary TDM6 Hostless Playback",
15368 0, 0, 0, 0),
15369 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
15370 "Secondary TDM6 Hostless Capture",
15371 0, 0, 0, 0),
15372 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
15373 "Secondary TDM7 Hostless Playback",
15374 0, 0, 0, 0),
15375 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
15376 "Secondary TDM7 Hostless Capture",
15377 0, 0, 0, 0),
15378 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
15379 "Tertiary TDM0 Hostless Playback",
15380 0, 0, 0, 0),
15381 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
15382 "Tertiary TDM0 Hostless Capture",
15383 0, 0, 0, 0),
15384 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
15385 "Tertiary TDM1 Hostless Playback",
15386 0, 0, 0, 0),
15387 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
15388 "Tertiary TDM1 Hostless Capture",
15389 0, 0, 0, 0),
15390 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
15391 "Tertiary TDM2 Hostless Playback",
15392 0, 0, 0, 0),
15393 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
15394 "Tertiary TDM2 Hostless Capture",
15395 0, 0, 0, 0),
15396 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
15397 "Tertiary TDM3 Hostless Playback",
15398 0, 0, 0, 0),
15399 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
15400 "Tertiary TDM3 Hostless Capture",
15401 0, 0, 0, 0),
15402 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
15403 "Tertiary TDM4 Hostless Playback",
15404 0, 0, 0, 0),
15405 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
15406 "Tertiary TDM4 Hostless Capture",
15407 0, 0, 0, 0),
15408 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
15409 "Tertiary TDM5 Hostless Playback",
15410 0, 0, 0, 0),
15411 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
15412 "Tertiary TDM5 Hostless Capture",
15413 0, 0, 0, 0),
15414 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
15415 "Tertiary TDM6 Hostless Playback",
15416 0, 0, 0, 0),
15417 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
15418 "Tertiary TDM6 Hostless Capture",
15419 0, 0, 0, 0),
15420 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
15421 "Tertiary TDM7 Hostless Playback",
15422 0, 0, 0, 0),
15423 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
15424 "Tertiary TDM7 Hostless Capture",
15425 0, 0, 0, 0),
15426 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
15427 "Quaternary TDM0 Hostless Playback",
15428 0, 0, 0, 0),
15429 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
15430 "Quaternary TDM0 Hostless Capture",
15431 0, 0, 0, 0),
15432 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
15433 "Quaternary TDM1 Hostless Playback",
15434 0, 0, 0, 0),
15435 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
15436 "Quaternary TDM1 Hostless Capture",
15437 0, 0, 0, 0),
15438 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
15439 "Quaternary TDM2 Hostless Playback",
15440 0, 0, 0, 0),
15441 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
15442 "Quaternary TDM2 Hostless Capture",
15443 0, 0, 0, 0),
15444 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
15445 "Quaternary TDM3 Hostless Playback",
15446 0, 0, 0, 0),
15447 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
15448 "Quaternary TDM3 Hostless Capture",
15449 0, 0, 0, 0),
15450 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
15451 "Quaternary TDM4 Hostless Playback",
15452 0, 0, 0, 0),
15453 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
15454 "Quaternary TDM4 Hostless Capture",
15455 0, 0, 0, 0),
15456 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
15457 "Quaternary TDM5 Hostless Playback",
15458 0, 0, 0, 0),
15459 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
15460 "Quaternary TDM5 Hostless Capture",
15461 0, 0, 0, 0),
15462 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
15463 "Quaternary TDM6 Hostless Playback",
15464 0, 0, 0, 0),
15465 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
15466 "Quaternary TDM6 Hostless Capture",
15467 0, 0, 0, 0),
15468 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
15469 "Quaternary TDM7 Hostless Playback",
15470 0, 0, 0, 0),
15471 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
15472 "Quaternary TDM7 Hostless Capture",
15473 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015474 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
15475 "Quinary TDM0 Hostless Playback",
15476 0, 0, 0, 0),
15477 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
15478 "Quinary TDM0 Hostless Capture",
15479 0, 0, 0, 0),
15480 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
15481 "Quinary TDM1 Hostless Playback",
15482 0, 0, 0, 0),
15483 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
15484 "Quinary TDM1 Hostless Capture",
15485 0, 0, 0, 0),
15486 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
15487 "Quinary TDM2 Hostless Playback",
15488 0, 0, 0, 0),
15489 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
15490 "Quinary TDM2 Hostless Capture",
15491 0, 0, 0, 0),
15492 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
15493 "Quinary TDM3 Hostless Playback",
15494 0, 0, 0, 0),
15495 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
15496 "Quinary TDM3 Hostless Capture",
15497 0, 0, 0, 0),
15498 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
15499 "Quinary TDM4 Hostless Playback",
15500 0, 0, 0, 0),
15501 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
15502 "Quinary TDM4 Hostless Capture",
15503 0, 0, 0, 0),
15504 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
15505 "Quinary TDM5 Hostless Playback",
15506 0, 0, 0, 0),
15507 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
15508 "Quinary TDM5 Hostless Capture",
15509 0, 0, 0, 0),
15510 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
15511 "Quinary TDM6 Hostless Playback",
15512 0, 0, 0, 0),
15513 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
15514 "Quinary TDM6 Hostless Capture",
15515 0, 0, 0, 0),
15516 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
15517 "Quinary TDM7 Hostless Playback",
15518 0, 0, 0, 0),
15519 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
15520 "Quinary TDM7 Hostless Capture",
15521 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015522
15523 /* LSM */
15524 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
15525 0, 0, 0, 0),
15526 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
15527 0, 0, 0, 0),
15528 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
15529 0, 0, 0, 0),
15530 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
15531 0, 0, 0, 0),
15532 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
15533 0, 0, 0, 0),
15534 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
15535 0, 0, 0, 0),
15536 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
15537 0, 0, 0, 0),
15538 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
15539 0, 0, 0, 0),
15540 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
15541 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
15542 /* Backend AIF */
15543 /* Stream name equals to backend dai link stream name */
15544 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
15545 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
15546 0, 0, 0, 0),
15547 SND_SOC_DAPM_AIF_OUT("SPDIF_RX", "SPDIF Playback", 0, 0, 0, 0),
15548 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
15549 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
15550 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
15551 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
15552 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
15553 0, 0, 0, 0),
15554 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
15555 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
15556 0, 0, 0, 0),
15557 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
15558 0, 0, 0, 0),
15559 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
15560 0, 0, 0, 0),
15561 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
15562 "Secondary MI2S Playback SD1",
15563 0, 0, 0, 0),
15564 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
15565 0, 0, 0, 0),
15566 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
15567 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015568 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
15569 0, 0, 0, 0),
15570 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
15571 0, 0, 0, 0),
15572 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
15573 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015574 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
15575 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015576 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
15577 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015578 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
15579 0, 0, 0, 0),
15580 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
15581 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
15582 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
15583 0, 0, 0, 0),
15584 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
15585 0, 0, 0, 0),
15586 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
15587 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015588 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
15589 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015590 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
15591 0, 0, 0, 0),
15592 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
15593 0, 0, 0, 0),
15594 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
15595 0, 0, 0, 0),
15596 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
15597 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
15598 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
15599 0, 0, 0, 0),
15600 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
15601 0, 0, 0, 0),
15602 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
15603 0, 0, 0, 0),
15604 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
15605 0, 0, 0, 0),
15606 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
15607 0, 0, 0, 0),
15608 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
15609 0, 0, 0, 0),
15610 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
15611 0, 0, 0, 0),
15612 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
15613 0, 0, 0, 0),
15614 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
15615 0, 0, 0, 0),
15616 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
15617 0, 0, 0, 0),
15618 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
15619 0, 0, 0, 0),
15620 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
15621 0, 0, 0, 0),
15622 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
15623 0, 0, 0, 0),
15624 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
15625 0, 0, 0, 0),
15626 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
15627 0, 0, 0, 0),
15628 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
15629 0, 0, 0, 0),
15630 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
15631 0, 0, 0, 0),
15632 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
15633 0, 0, 0, 0),
15634 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
15635 0, 0, 0, 0),
15636 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
15637 0, 0, 0, 0),
15638 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
15639 0, 0, 0, 0),
15640 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
15641 0, 0, 0, 0),
15642 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
15643 0, 0, 0, 0),
15644 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
15645 0, 0, 0, 0),
15646 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
15647 0, 0, 0, 0),
15648 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
15649 0, 0, 0, 0),
15650 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
15651 0, 0, 0, 0),
15652 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
15653 0, 0, 0, 0),
15654 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
15655 0, 0, 0, 0),
15656 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
15657 0, 0, 0, 0),
15658 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
15659 0, 0, 0, 0),
15660 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
15661 0, 0, 0, 0),
15662 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
15663 0, 0, 0, 0),
15664 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
15665 0, 0, 0, 0),
15666 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
15667 0, 0, 0, 0),
15668 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
15669 0, 0, 0, 0),
15670 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
15671 0, 0, 0, 0),
15672 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
15673 0, 0, 0, 0),
15674 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
15675 0, 0, 0, 0),
15676 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
15677 0, 0, 0, 0),
15678 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
15679 0, 0, 0, 0),
15680 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
15681 0, 0, 0, 0),
15682 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
15683 0, 0, 0, 0),
15684 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
15685 0, 0, 0, 0),
15686 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
15687 0, 0, 0, 0),
15688 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
15689 0, 0, 0, 0),
15690 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
15691 0, 0, 0, 0),
15692 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
15693 0, 0, 0, 0),
15694 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
15695 0, 0, 0, 0),
15696 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
15697 0, 0, 0, 0),
15698 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
15699 0, 0, 0, 0),
15700 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
15701 0, 0, 0, 0),
15702 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
15703 0, 0, 0, 0),
15704 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
15705 0, 0, 0, 0),
15706 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
15707 0, 0, 0, 0),
15708 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
15709 0, 0, 0, 0),
15710 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
15711 0, 0, 0, 0),
15712 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
15713 0, 0, 0, 0),
15714 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
15715 0, 0, 0, 0),
15716 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
15717 0, 0, 0, 0),
15718 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
15719 0, 0, 0, 0),
15720 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
15721 0, 0, 0, 0),
15722 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
15723 0, 0, 0, 0),
15724 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
15725 0, 0, 0, 0),
15726 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
15727 0, 0, 0, 0),
15728 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
15729 0, 0, 0, 0),
15730 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
15731 0, 0, 0, 0),
15732 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
15733 0, 0, 0, 0),
15734 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
15735 0, 0, 0, 0),
15736 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
15737 0, 0, 0, 0),
15738 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
15739 0, 0, 0, 0),
15740 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
15741 0, 0, 0, 0),
15742 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
15743 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015744 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
15745 0, 0, 0, 0),
15746 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
15747 0, 0, 0, 0),
15748 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
15749 0, 0, 0, 0),
15750 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
15751 0, 0, 0, 0),
15752 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
15753 0, 0, 0, 0),
15754 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
15755 0, 0, 0, 0),
15756 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
15757 0, 0, 0, 0),
15758 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
15759 0, 0, 0, 0),
15760 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
15761 0, 0, 0, 0),
15762 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
15763 0, 0, 0, 0),
15764 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
15765 0, 0, 0, 0),
15766 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
15767 0, 0, 0, 0),
15768 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
15769 0, 0, 0, 0),
15770 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
15771 0, 0, 0, 0),
15772 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
15773 0, 0, 0, 0),
15774 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
15775 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015776 /* incall */
15777 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
15778 0, 0, 0, 0),
15779 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
15780 0, 0, 0, 0),
15781 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
15782 0, 0, 0, 0),
15783 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
15784 0, 0, 0, 0),
15785 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
15786 0, 0, 0, 0),
15787 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
15788 0, 0, 0, 0),
15789 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
15790 0, 0, 0, 0),
15791 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
15792 0, 0, 0, 0),
15793 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
15794
15795 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
15796 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
15797 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
15798 0, 0, 0, 0),
15799 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
15800 0, 0, 0, 0),
15801 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
15802 0, 0, 0, 0),
15803 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
15804 0, 0, 0, 0),
15805 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
15806 0, 0, 0, 0),
15807 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
15808 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015809 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
15810 0, 0, 0, 0),
15811 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
15812 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015813 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
15814 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
15815 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
15816 0, 0, 0, 0),
15817 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
15818 0, 0, 0, 0),
15819 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
15820 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
15821 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
15822 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
15823 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
15824 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
15825 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
15826 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
15827 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
15828 /* In- call recording */
15829 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
15830 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Raja Mallik425e1d32018-05-20 19:21:10 +053015831 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
15832 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015833 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
15834 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
15835
15836 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
15837 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
15838 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
15839 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
15840
15841 /* Switch Definitions */
15842 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
15843 &slim_fm_switch_mixer_controls),
15844 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
15845 &slim1_fm_switch_mixer_controls),
15846 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
15847 &slim3_fm_switch_mixer_controls),
15848 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
15849 &slim4_fm_switch_mixer_controls),
15850 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
15851 &slim6_fm_switch_mixer_controls),
15852 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15853 &pcm_rx_switch_mixer_controls),
15854 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15855 &int0_mi2s_rx_switch_mixer_controls),
15856 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15857 &int4_mi2s_rx_switch_mixer_controls),
15858 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15859 &pri_mi2s_rx_switch_mixer_controls),
15860 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15861 &sec_mi2s_rx_switch_mixer_controls),
15862 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15863 &tert_mi2s_rx_switch_mixer_controls),
15864 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15865 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053015866 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15867 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015868 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
15869 &hfp_pri_aux_switch_mixer_controls),
15870 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
15871 &hfp_aux_switch_mixer_controls),
15872 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
15873 &hfp_int_switch_mixer_controls),
15874 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
15875 &hfp_slim7_switch_mixer_controls),
15876 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
15877 &usb_switch_mixer_controls),
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080015878 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
15879 &a2dp_slim7_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015880
15881 /* Mixer definitions */
15882 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15883 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
15884 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15885 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
15886 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15887 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
15888 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15889 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
15890 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15891 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
15892 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15893 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
15894 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
15895 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
15896 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
15897 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
15898 SND_SOC_DAPM_MIXER("SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15899 spdif_rx_mixer_controls, ARRAY_SIZE(spdif_rx_mixer_controls)),
15900 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15901 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
15902 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15903 quaternary_mi2s_rx_mixer_controls,
15904 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
15905 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15906 tertiary_mi2s_rx_mixer_controls,
15907 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
15908 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15909 secondary_mi2s_rx_mixer_controls,
15910 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
15911 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15912 secondary_mi2s_rx2_mixer_controls,
15913 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
15914 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15915 primary_mi2s_rx_mixer_controls,
15916 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
15917 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15918 int0_mi2s_rx_mixer_controls,
15919 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
15920 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15921 int4_mi2s_rx_mixer_controls,
15922 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
15923 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15924 quinary_mi2s_rx_mixer_controls,
15925 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
15926 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15927 pri_tdm_rx_0_mixer_controls,
15928 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
15929 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15930 pri_tdm_rx_1_mixer_controls,
15931 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
15932 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15933 pri_tdm_rx_2_mixer_controls,
15934 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
15935 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15936 pri_tdm_rx_3_mixer_controls,
15937 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
15938 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15939 pri_tdm_tx_0_mixer_controls,
15940 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
15941 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15942 sec_tdm_rx_0_mixer_controls,
15943 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
15944 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15945 sec_tdm_rx_1_mixer_controls,
15946 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
15947 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15948 sec_tdm_rx_2_mixer_controls,
15949 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
15950 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15951 sec_tdm_rx_3_mixer_controls,
15952 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
15953 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15954 sec_tdm_tx_0_mixer_controls,
15955 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
15956 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15957 tert_tdm_rx_0_mixer_controls,
15958 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
15959 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15960 tert_tdm_tx_0_mixer_controls,
15961 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
15962 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15963 tert_tdm_rx_1_mixer_controls,
15964 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
15965 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15966 tert_tdm_rx_2_mixer_controls,
15967 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
15968 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15969 tert_tdm_rx_3_mixer_controls,
15970 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
15971 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
15972 tert_tdm_rx_4_mixer_controls,
15973 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
15974 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15975 quat_tdm_rx_0_mixer_controls,
15976 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
15977 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15978 quat_tdm_tx_0_mixer_controls,
15979 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
15980 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15981 quat_tdm_rx_1_mixer_controls,
15982 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
15983 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15984 quat_tdm_rx_2_mixer_controls,
15985 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
15986 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15987 quat_tdm_rx_3_mixer_controls,
15988 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053015989 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15990 quin_tdm_rx_0_mixer_controls,
15991 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
15992 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15993 quin_tdm_tx_0_mixer_controls,
15994 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
15995 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15996 quin_tdm_rx_1_mixer_controls,
15997 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
15998 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15999 quin_tdm_rx_2_mixer_controls,
16000 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
16001 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
16002 quin_tdm_rx_3_mixer_controls,
16003 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016004 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
16005 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
16006 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
16007 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
16008 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
16009 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
16010 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
16011 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
16012 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
16013 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
16014 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
16015 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
16016 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
16017 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
16018 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
16019 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053016020 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
16021 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053016022 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
16023 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016024 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
16025 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
16026 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
16027 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
16028 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
16029 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
16030 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
16031 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016032 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
16033 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
16034 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
16035 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016036 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16037 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
16038 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16039 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
16040 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16041 tert_auxpcm_rx_mixer_controls,
16042 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
16043 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16044 quat_auxpcm_rx_mixer_controls,
16045 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016046 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16047 quin_auxpcm_rx_mixer_controls,
16048 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016049 /* incall */
16050 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
16051 incall_music_delivery_mixer_controls,
16052 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
16053 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16054 incall_music2_delivery_mixer_controls,
16055 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
16056 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16057 slimbus_4_rx_mixer_controls,
16058 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
16059 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16060 slimbus_6_rx_mixer_controls,
16061 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
16062 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16063 usb_audio_rx_mixer_controls,
16064 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
16065 /* Voice Mixer */
16066 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
16067 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
16068 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
16069 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
16070 SND_SOC_NOPM, 0, 0,
16071 sec_i2s_rx_voice_mixer_controls,
16072 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
16073 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
16074 SND_SOC_NOPM, 0, 0,
16075 sec_mi2s_rx_voice_mixer_controls,
16076 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
16077 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
16078 SND_SOC_NOPM, 0, 0,
16079 slimbus_rx_voice_mixer_controls,
16080 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
16081 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
16082 SND_SOC_NOPM, 0, 0,
16083 bt_sco_rx_voice_mixer_controls,
16084 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
16085 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
16086 SND_SOC_NOPM, 0, 0,
16087 afe_pcm_rx_voice_mixer_controls,
16088 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
16089 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
16090 SND_SOC_NOPM, 0, 0,
16091 aux_pcm_rx_voice_mixer_controls,
16092 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
16093 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
16094 SND_SOC_NOPM, 0, 0,
16095 sec_aux_pcm_rx_voice_mixer_controls,
16096 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
16097 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
16098 SND_SOC_NOPM, 0, 0,
16099 tert_aux_pcm_rx_voice_mixer_controls,
16100 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
16101 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
16102 SND_SOC_NOPM, 0, 0,
16103 quat_aux_pcm_rx_voice_mixer_controls,
16104 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016105 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
16106 SND_SOC_NOPM, 0, 0,
16107 quin_aux_pcm_rx_voice_mixer_controls,
16108 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016109 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
16110 SND_SOC_NOPM, 0, 0,
16111 hdmi_rx_voice_mixer_controls,
16112 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
16113 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
16114 SND_SOC_NOPM, 0, 0,
16115 mi2s_rx_voice_mixer_controls,
16116 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
16117 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
16118 SND_SOC_NOPM, 0, 0,
16119 pri_mi2s_rx_voice_mixer_controls,
16120 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
16121 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
16122 SND_SOC_NOPM, 0, 0,
16123 int0_mi2s_rx_voice_mixer_controls,
16124 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
16125 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
16126 SND_SOC_NOPM, 0, 0,
16127 int4_mi2s_rx_voice_mixer_controls,
16128 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
16129 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
16130 SND_SOC_NOPM, 0, 0,
16131 tert_mi2s_rx_voice_mixer_controls,
16132 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
16133 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
16134 SND_SOC_NOPM, 0, 0,
16135 quat_mi2s_rx_voice_mixer_controls,
16136 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
16137 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
16138 SND_SOC_NOPM, 0, 0,
16139 quin_mi2s_rx_voice_mixer_controls,
16140 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Raja Mallik321d5712018-05-04 17:22:11 +053016141 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
16142 SND_SOC_NOPM, 0, 0,
16143 pri_tdm_rx_0_voice_mixer_controls,
16144 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
16145 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
16146 SND_SOC_NOPM, 0, 0,
16147 pri_tdm_rx_1_voice_mixer_controls,
16148 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
16149 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
16150 SND_SOC_NOPM, 0, 0,
16151 pri_tdm_rx_2_voice_mixer_controls,
16152 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
16153 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
16154 SND_SOC_NOPM, 0, 0,
16155 pri_tdm_rx_3_voice_mixer_controls,
16156 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016157 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
16158 SND_SOC_NOPM, 0, 0,
16159 quat_tdm_rx_2_voice_mixer_controls,
16160 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016161 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
16162 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
16163 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016164 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
16165 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
16166 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
16167 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
16168 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
16169 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
16170 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16171 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
16172 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16173 int_bt_a2dp_rx_mixer_controls,
16174 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
16175 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16176 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
16177 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16178 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
16179 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16180 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
16181 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16182 tx_voice2_stub_mixer_controls,
16183 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
16184 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16185 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
16186 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
16187 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
16188 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
16189 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
16190 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16191 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
16192 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
16193 SND_SOC_NOPM, 0, 0,
16194 slimbus_6_rx_voice_mixer_controls,
16195 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
16196 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16197 slimbus_7_rx_voice_mixer_controls,
16198 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
16199 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16200 slimbus_8_rx_voice_mixer_controls,
16201 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
16202 /* port mixer */
16203 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
16204 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
16205 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
16206 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
16207 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
16208 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
16209 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
16210 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
16211 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
16212 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
16213 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
16214 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
16215 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
16216 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
16217 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016218 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
16219 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
16220 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016221 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16222 sbus_1_rx_port_mixer_controls,
16223 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
16224 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16225 bt_sco_rx_port_mixer_controls,
16226 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
16227 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
16228 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
16229 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
16230 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
16231 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
16232 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
16233 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
16234 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
16235 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
16236 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
16237 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
16238 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
16239 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
16240 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
16241 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
16242 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
16243 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
16244 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
16245 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16246 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
16247 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16248 primary_mi2s_rx_port_mixer_controls,
16249 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
16250 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16251 sec_mi2s_rx_port_mixer_controls,
16252 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
16253 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16254 tert_mi2s_rx_port_mixer_controls,
16255 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
16256 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16257 quat_mi2s_rx_port_mixer_controls,
16258 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016259 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16260 quin_mi2s_rx_port_mixer_controls,
16261 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016262 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16263 pri_tdm_rx_0_port_mixer_controls,
16264 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
16265 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16266 pri_tdm_rx_1_port_mixer_controls,
16267 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
16268 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16269 pri_tdm_rx_2_port_mixer_controls,
16270 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
16271 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16272 pri_tdm_rx_3_port_mixer_controls,
16273 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
16274 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16275 sec_tdm_rx_0_port_mixer_controls,
16276 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
16277 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16278 sec_tdm_rx_1_port_mixer_controls,
16279 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
16280 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16281 sec_tdm_rx_2_port_mixer_controls,
16282 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
16283 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16284 sec_tdm_rx_3_port_mixer_controls,
16285 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
16286 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16287 tert_tdm_rx_0_port_mixer_controls,
16288 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
16289 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16290 tert_tdm_rx_1_port_mixer_controls,
16291 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
16292 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16293 tert_tdm_rx_2_port_mixer_controls,
16294 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
16295 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16296 tert_tdm_rx_3_port_mixer_controls,
16297 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
16298 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16299 quat_tdm_rx_0_port_mixer_controls,
16300 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
16301 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16302 quat_tdm_rx_1_port_mixer_controls,
16303 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
16304 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16305 quat_tdm_rx_2_port_mixer_controls,
16306 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
16307 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16308 quat_tdm_rx_3_port_mixer_controls,
16309 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016310 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16311 quin_tdm_rx_0_port_mixer_controls,
16312 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
16313 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16314 quin_tdm_rx_1_port_mixer_controls,
16315 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
16316 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16317 quin_tdm_rx_2_port_mixer_controls,
16318 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
16319 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16320 quin_tdm_rx_3_port_mixer_controls,
16321 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016322 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16323 int0_mi2s_rx_port_mixer_controls,
16324 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
16325 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16326 int4_mi2s_rx_port_mixer_controls,
16327 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
16328 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
16329 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
16330 ARRAY_SIZE(tx_qchat_mixer_controls)),
16331 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
16332 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
16333 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
16334 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
16335 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
16336 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080016337 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
16338 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
16339 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016340 /* lsm mixer definitions */
16341 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
16342 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
16343 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
16344 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
16345 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
16346 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
16347 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
16348 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
16349 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
16350 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
16351 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
16352 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
16353 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
16354 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
16355 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
16356 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
16357 /* Virtual Pins to force backends ON atm */
16358 SND_SOC_DAPM_OUTPUT("BE_OUT"),
16359 SND_SOC_DAPM_INPUT("BE_IN"),
16360
16361 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
16362 &slim0_rx_vi_fb_lch_mux),
16363 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
16364 &slim0_rx_vi_fb_rch_mux),
16365 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
16366 &mi2s_rx_vi_fb_mux),
16367 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
16368 &int4_mi2s_rx_vi_fb_mono_ch_mux),
16369 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
16370 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
16371
16372 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
16373 &voc_ext_ec_mux),
16374 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
16375 &ext_ec_ref_mux_ul1),
16376 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
16377 &ext_ec_ref_mux_ul2),
16378 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
16379 &ext_ec_ref_mux_ul3),
16380 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
16381 &ext_ec_ref_mux_ul4),
16382 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
16383 &ext_ec_ref_mux_ul5),
16384 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
16385 &ext_ec_ref_mux_ul6),
16386 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
16387 &ext_ec_ref_mux_ul8),
16388 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
16389 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053016390 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
16391 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053016392 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
16393 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016394 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
16395 &ext_ec_ref_mux_ul17),
16396 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
16397 &ext_ec_ref_mux_ul18),
16398 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
16399 &ext_ec_ref_mux_ul19),
Meng Wangbe8194e2018-04-25 10:40:01 +080016400 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
16401 &ext_ec_ref_mux_ul28),
16402 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
16403 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016404};
16405
16406static const struct snd_soc_dapm_route intercon[] = {
16407 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16408 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16409 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16410 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16411 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16412 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16413 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16414 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16415 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16416 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16417 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16418 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16419 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16420 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16421 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16422 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Ramjee Singh29973d72020-03-06 09:21:43 +053016423 {"PRI_RX Audio Mixer", "MultiMedia30", "MM_DL30"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016424 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
16425
16426 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16427 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16428 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16429 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16430 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16431 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16432 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16433 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16434 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16435 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16436 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16437 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16438 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16439 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16440 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16441 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16442 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
16443
16444 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16445 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16446 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16447 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16448 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16449 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16450 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16451 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16452 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16453 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16454 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16455 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16456 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16457 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16458 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16459 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16460 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
16461
16462 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16463 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16464 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16465 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16466 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16467 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16468 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16469 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16470 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16471 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16472 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16473 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16474 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16475 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16476 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16477 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16478 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
16479
16480 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16481 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16482 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16483 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16484 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16485 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16486 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16487 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16488 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16489 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16490 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16491 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16492 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16493 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16494 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16495 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16496 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
16497
16498 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
16499 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
16500 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
16501 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
16502 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
16503 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
16504 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
16505 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
16506 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
16507 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
16508 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
16509 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
16510 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
16511 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
16512 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
16513 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
16514 {"HDMI", NULL, "HDMI Mixer"},
16515
16516 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
16517 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
16518 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
16519 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
16520 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
16521 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
16522 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
16523 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
16524 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
16525 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
16526 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
16527 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
16528 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
16529 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
16530 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
16531 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
16532 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
16533
16534 {"SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16535 {"SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16536 {"SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16537 {"SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16538 {"SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16539 {"SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16540 {"SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16541 {"SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16542 {"SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16543 {"SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16544 {"SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16545 {"SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16546 {"SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16547 {"SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16548 {"SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16549 {"SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16550 {"SPDIF_RX", NULL, "SPDIF_RX Audio Mixer"},
16551
16552 /* incall */
16553 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
16554 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
16555 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
16556 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
16557 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
16558 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16559 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16560 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16561 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16562 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
16563 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16564 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16565 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16566 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16567 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
16568
16569 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16570 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16571 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16572 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16573 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16574 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16575 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16576 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16577 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16578 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16579 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16580 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16581 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16582 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16583 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16584 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16585 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
16586
16587 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16588 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16589 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16590 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16591 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16592 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16593 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16594 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16595 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16596 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16597 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16598 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16599 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16600 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16601 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16602 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16603 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
16604
16605 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16606 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16607 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16608 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16609 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16610 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16611 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16612 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16613 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16614 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16615 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16616 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16617 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16618 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16619 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16620 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16621 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
16622
16623 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16624 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16625 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16626 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16627 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16628 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16629 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
16630 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
16631 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16632 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
16633 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
16634 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16635 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16636 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16637 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16638 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016639 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16640 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016641 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16642 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16643 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16644 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16645 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16646 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016647 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16648 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016649 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016650 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16651 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16652 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16653 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16654 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16655 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016656 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016657 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
16658 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
16659 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016660 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
16661 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16662 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053016663 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053016664 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016665 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16666 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053016667 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016668 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16669 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16670 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16671 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16672 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16673 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16674 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16675 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16676 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16677 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16678 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16679 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16680 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16681 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16682 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16683 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16684 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
16685
16686 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16687 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16688 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16689 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16690 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16691 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16692 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16693 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16694 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16695 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16696 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16697 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16698 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16699 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16700 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16701 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
16702
16703 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16704 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16705 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16706 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16707 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16708 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16709 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16710 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16711 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16712 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16713 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16714 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16715 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16716 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16717 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
16718
16719 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16720 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16721 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16722 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16723 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16724 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16725 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16726 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16727 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16728 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16729 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16730 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16731 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16732 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16733 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
16734
16735 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16736 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
16737
16738 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16739 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
16740
16741 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16742 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16743 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16744 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16745 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16746 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16747 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16748 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Sachin Mohan Gadagd1b8fbc2018-07-20 15:50:17 +053016749 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016750 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16751 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16752 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16753 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16754 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16755 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16756 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Ramjee Singh29973d72020-03-06 09:21:43 +053016757 {"PRI_MI2S_RX Audio Mixer", "MultiMedia30", "MM_DL30"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016758 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
16759
16760 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16761 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16762 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16763 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16764 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16765 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16766 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16767 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16768 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16769 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16770 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16771 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16772 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16773 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16774 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16775 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
16776
16777 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16778 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16779 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16780 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16781 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16782 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16783 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16784 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16785 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16786 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16787 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16788 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16789 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16790 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16791 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16792 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
16793
16794 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16795 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16796 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16797 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16798 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16799 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16800 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16801 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16802 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16803 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16804 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16805 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16806 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16807 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16808 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16809 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16810 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16811 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
16812
16813 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16814 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16815 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16816 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16817 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16818 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16819 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16820 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16821 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16822 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16823 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16824 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16825 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16826 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16827 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16828 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16829 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
16830
16831 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
16832 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
16833 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
16834 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
16835 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
16836 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16837 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
16838 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
16839 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
16840 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
16841 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
16842 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
16843 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
16844 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
16845 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
16846 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
16847 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
16848
16849 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16850 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16851 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
16852 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
16853 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16854 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
16855 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
16856 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
16857 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16858 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
16859 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
16860 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
16861 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
16862 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
16863 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
16864 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
16865 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
16866
16867 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
16868 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
16869 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
16870 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
16871 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
16872 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
16873 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
16874 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
16875 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
16876 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
16877 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
16878 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
16879 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
16880 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
16881 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
16882 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
16883 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
16884
16885 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16886 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16887 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16888 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16889 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16890 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16891 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16892 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16893 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16894 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16895 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16896 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16897 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16898 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16899 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16900 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16901 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
16902
16903 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16904 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16905 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16906 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16907 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16908 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16909 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16910 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16911 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16912 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16913 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16914 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16915 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16916 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16917 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16918 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16919 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
16920
16921 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
16922 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
16923 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
16924 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
16925 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
16926 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16927 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
16928 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
16929 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
16930 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
16931 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
16932 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
16933 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
16934 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
16935 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
16936 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
16937 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
16938
16939 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16940 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16941 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
16942 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
16943 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16944 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
16945 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
16946 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
16947 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16948 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
16949 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
16950 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
16951 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
16952 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
16953 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
16954 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
16955 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
16956
16957 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
16958 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
16959 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
16960 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
16961 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
16962 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
16963 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
16964 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
16965 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
16966 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
16967 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
16968 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
16969 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
16970 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
16971 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
16972 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
16973 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
16974
16975 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16976 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16977 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16978 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16979 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16980 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16981 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16982 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16983 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16984 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16985 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16986 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16987 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16988 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16989 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16990 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16991 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
16992
16993 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16994 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16995 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16996 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16997 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16998 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16999 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17000 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17001 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17002 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17003 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17004 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17005 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17006 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17007 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17008 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17009 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
17010
17011 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17012 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17013 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17014 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17015 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17016 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17017 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17018 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17019 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17020 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17021 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17022 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17023 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17024 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17025 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17026 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17027 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
17028
17029 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17030 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17031 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17032 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17033 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17034 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17035 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17036 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17037 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17038 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17039 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17040 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17041 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17042 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17043 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17044 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17045 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
17046
17047 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17048 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17049 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17050 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17051 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17052 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17053 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17054 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17055 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17056 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17057 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17058 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17059 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17060 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17061 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17062 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17063 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
17064
17065 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17066 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17067 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17068 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17069 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17070 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17071 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17072 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17073 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17074 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17075 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17076 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17077 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17078 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17079 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17080 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17081 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
17082
17083 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
17084 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
17085 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
17086 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
17087 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
17088 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
17089 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
17090 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
17091 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
17092 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
17093 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
17094 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
17095 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
17096 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
17097 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
17098 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
17099 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
17100
17101 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17102 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17103 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17104 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17105 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17106 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17107 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17108 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17109 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17110 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17111 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17112 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17113 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17114 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17115 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17116 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17117 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17118 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
17119
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017120 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17121 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17122 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17123 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17124 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17125 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17126 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17127 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17128 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17129 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17130 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17131 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17132 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17133 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17134 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17135 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17136 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
17137
17138 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17139 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17140 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17141 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17142 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17143 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17144 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17145 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17146 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17147 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17148 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17149 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17150 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17151 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17152 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17153 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17154 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17155 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
17156
17157 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17158 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17159 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17160 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17161 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17162 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17163 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17164 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17165 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17166 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17167 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17168 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17169 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17170 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17171 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17172 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17173 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17174 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
17175
17176 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17177 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17178 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17179 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17180 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17181 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17182 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17183 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17184 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17185 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17186 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17187 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17188 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17189 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17190 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17191 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17192 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17193 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
17194
Rohit Kumara5077932017-09-10 22:05:05 +053017195 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17196 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17197 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17198 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17199 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17200 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17201 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17202 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17203 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17204 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17205 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17206 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17207 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17208 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17209 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17210 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17211 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17212 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
17213
17214 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17215 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17216 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17217 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17218 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17219 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17220 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17221 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17222 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17223 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17224 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17225 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17226 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17227 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17228 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17229 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17230 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
17231
17232 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17233 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17234 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17235 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17236 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17237 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17238 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17239 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17240 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17241 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17242 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17243 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17244 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17245 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17246 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17247 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17248 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17249 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
17250
17251 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17252 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17253 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17254 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17255 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17256 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17257 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17258 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17259 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17260 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17261 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17262 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17263 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17264 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17265 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17266 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17267 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17268 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
17269
17270 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17271 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17272 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17273 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17274 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17275 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17276 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17277 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17278 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17279 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17280 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17281 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17282 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17283 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17284 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17285 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17286 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17287 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
17288
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017289 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
17290 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
17291 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
17292 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
17293 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017294 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017295 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017296 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17297 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17298 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17299 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17300 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17301 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17302 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17303 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17304 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17305 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17306 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17307 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17308 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17309 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17310 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017311 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017312 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17313 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
17314 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017315 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017316 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17317 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017318 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
17319 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
17320 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017321 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017322 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
17323 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
17324 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017325 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017326 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017327 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
17328 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
17329 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017330 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17331 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
17332 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
17333 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
17334 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17335 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17336 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17337 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17338 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17339 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17340 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017341 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017342 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17343 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17344 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017345 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017346 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017347 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17348 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17349 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017350 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017351 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017352 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17353 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17354 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17355 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17356 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017357 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17358 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17359 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17360 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017361 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017362
17363 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17364 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17365 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17366 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17367 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17368 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17369 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17370 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17371 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17372 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17373 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17374 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17375 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17376 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17377 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17378 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017379 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017380 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17381 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17382 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17383 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017384
17385 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17386 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17387 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17388 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17389 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17390 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17391 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17392 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17393 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17394 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17395 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17396 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17397 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17398 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17399 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17400 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017401 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017402 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17403 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17404 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17405 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017406
17407 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17408 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17409 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17410 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17411 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17412 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17413 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17414 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17415 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17416 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17417 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17418 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17419 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17420 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17421 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17422 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017423 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017424 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17425 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17426 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17427 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017428
17429 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17430 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17431 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17432 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17433 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17434 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17435 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17436 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17437 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17438 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17439 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17440 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17441 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17442 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17443 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17444 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017445 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017446 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17447 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17448 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17449 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017450
17451 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17452 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17453 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17454 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17455 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17456 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17457 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17458 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17459 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17460 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17461 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17462 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17463 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17464 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17465 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17466 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017467 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017468 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17469 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17470 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17471 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017472
17473 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17474 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17475 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17476 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17477 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17478 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17479 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17480 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17481 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17482 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17483 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17484 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17485 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17486 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17487 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17488 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017489 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017490 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17491 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17492 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17493 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017494
17495 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17496 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17497 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17498 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17499 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17500 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17501 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17502 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17503 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17504 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17505 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17506 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17507 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17508 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17509 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17510 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017511 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017512 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17513 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17514 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17515 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017516
Gangadhar Sc1a5a502020-03-03 13:23:43 +053017517 {"MultiMedia9 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17518 {"MultiMedia9 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17519 {"MultiMedia9 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17520 {"MultiMedia9 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017521 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17522 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17523 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17524 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17525 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17526 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17527 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17528 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053017529 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17530 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17531 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17532 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017533 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017534
Laxminath Kasam38070be2017-08-17 18:21:59 +053017535 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17536 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17537 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17538 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17539 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17540 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17541 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17542 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017543 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17544 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17545 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17546 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017547 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017548 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17549 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17550 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17551 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17552 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17553 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17554 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17555 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17556 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17557 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17558 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17559 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17560 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17561 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17562 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17563 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053017564 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17565 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17566 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17567 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017568
17569 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17570 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17571 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17572 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17573 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17574 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017575 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017576
Asish Bhattacharya34504582017-08-08 12:55:01 +053017577 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17578 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17579 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17580 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17581 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17582 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17583 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17584 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17585 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17586 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17587 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17588 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17589 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17590 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17591 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17592 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
17593 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17594
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017595 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17596 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17597 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17598 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17599 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17600 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17601 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17602 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17603 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17604 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17605 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17606 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17607 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17608 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17609 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17610 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17611 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
17612 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
17613
17614 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17615 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17616 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17617 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17618 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17619 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17620 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17621 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17622 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17623 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17624 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17625 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17626 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17627 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17628 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17629 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17630 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
17631 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
17632
17633 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17634 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17635 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17636 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17637 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17638 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17639 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17640 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17641 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17642 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17643 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17644 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17645 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17646 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17647 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17648 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17649 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
17650
17651 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17652 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17653 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17654 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17655 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17656 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17657 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17658 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17659 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17660 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17661 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17662 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17663 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17664 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17665 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17666 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17667 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
17668
17669 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17670 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17671 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017672 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017673 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17674 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17675 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017676 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17677 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017678 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17679 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017680 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017681 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17682 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017683 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017684 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17685 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17686 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017687 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17688 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017689 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17690 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17691 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17692
17693 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
17694 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
17695 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017696 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017697 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
17698 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
17699 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017700 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
17701 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017702 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
17703 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017704 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017705 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
17706 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17707 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
17708 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
17709 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
17710 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
17711 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
17712 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
17713 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017714 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017715 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017716 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
17717 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
17718 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
17719 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017720 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
17721 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017722
17723 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17724 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17725 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17726 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17727 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17728 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17729 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17730 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17731 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17732 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17733 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17734 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17735 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17736 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17737 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17738 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17739 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
17740
17741 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17742 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17743 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17744 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17745 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17746 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17747 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17748 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17749 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17750 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17751 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17752 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17753 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17754 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17755 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17756 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17757 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
17758
17759 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17760 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17761 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17762 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17763 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17764 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17765 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17766 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17767 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17768 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17769 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17770 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17771 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17772 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17773 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17774 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17775 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
17776
17777 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17778 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17779 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17780 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17781 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17782 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17783 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17784 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17785 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17786 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17787 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17788 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17789 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17790 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17791 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17792 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17793 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
17794
Rohit Kumara5077932017-09-10 22:05:05 +053017795 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17796 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17797 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17798 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17799 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17800 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17801 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17802 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17803 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17804 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17805 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17806 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17807 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17808 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17809 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17810 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17811 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
17812
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017813 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
17814 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17815 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17816 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17817 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17818 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
17819
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017820 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
17821 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17822 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17823 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
17824
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017825 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17826 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17827 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17828 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17829 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17830 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
17831
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017832 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
17833 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017834 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17835 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17836 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17837 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
17838
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017839 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
17840 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017841 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17842 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17843 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17844 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
17845
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017846 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
17847 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017848 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17849 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17850 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17851 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
17852
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080017853 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
17854 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080017855 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17856 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17857 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17858 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
17859
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017860 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
17861 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17862 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17863 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17864 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017865 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
17866
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017867 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17868 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17869 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17870 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17871 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17872 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
17873
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017874 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17875 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017876 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17877 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17878 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17879 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
17880
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017881 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17882 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017883 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17884 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17885 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17886 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
17887
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017888 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17889 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017890 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17891 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17892 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17893 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
17894
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017895 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17896 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017897 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17898 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17899 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17900 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
17901
Rohit Kumara5077932017-09-10 22:05:05 +053017902 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17903 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053017904 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17905 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17906 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17907 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
17908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017909 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
17910 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17911 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17912 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17913 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17914 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
17915 {"HDMI", NULL, "HDMI_DL_HL"},
17916
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017917 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017918 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17919 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17920 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080017921 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017922 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
17923
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017924 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017925 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17926 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17927 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17928 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17929 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
17930
17931 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17932 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17933 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17934 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17935 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17936 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
17937
17938 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17939 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17940 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17941 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17942 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17943 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
17944
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017945 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017946 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17947 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17948 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17949 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17950 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
17951
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017952 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017953 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17954 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17955 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17956 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
17957
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017958 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017959 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17960 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17961 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17962 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
17963
Raja Mallik321d5712018-05-04 17:22:11 +053017964 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017965 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17966 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17967 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17968 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
17969 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17970 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17971 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17972 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
17973
Raja Mallik321d5712018-05-04 17:22:11 +053017974 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017975 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17976 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17977 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17978 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
17979 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17980 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17981 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17982 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
17983
Raja Mallik321d5712018-05-04 17:22:11 +053017984 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017985 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17986 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17987 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17988 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
17989 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17990 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17991 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17992 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
17993
Raja Mallik321d5712018-05-04 17:22:11 +053017994 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017995 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17996 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17997 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17998 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
17999 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
18000 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18001 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18002 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
18003
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018004 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18005 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
18006
18007 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18008 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18009 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18010 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018011 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018012 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018013 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018014 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
18015 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
18016
18017 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18018 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18019 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18020 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
jinjiawu2e4225c2021-04-07 17:31:16 +080018021 {"AUDIO_REF_EC_UL1 MUX", "QUIN_MI2S_RX", "QUIN_MI2S_RX"}, //[FairPhone][Audio][jinjia]=2021.04.07=Add QUIN_MI2S path for echo reference.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018022 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Bala Kishore Pati1a044712018-10-03 12:12:36 +053018023 {"AUDIO_REF_EC_UL1 MUX", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018024 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18025 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
18026 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
18027 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
18028 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18029
18030 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18031 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18032 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18033 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18034
18035 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18036 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18037 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18038 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18039
18040 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18041 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18042 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18043 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18044
18045 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18046 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18047 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18048 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18049
18050 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18051 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18052 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18053 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18054
18055 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18056 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18057 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18058 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Bala Kishore Pati1a044712018-10-03 12:12:36 +053018059 {"AUDIO_REF_EC_UL8 MUX", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018060
18061 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18062 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18063 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18064 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18065
Laxminath Kasam38070be2017-08-17 18:21:59 +053018066 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18067 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18068 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18069 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18070 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
18071 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18072 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
18073 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
18074 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
18075 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070018076
18077 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18078 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18079 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18080 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18081
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018082 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18083 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18084 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18085 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18086
18087 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18088 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18089 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18090 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18091
18092 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18093 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18094 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18095 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18096
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053018097 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18098 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18099 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18100 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18101
18102 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18103 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18104 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18105 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080018106
18107 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18108 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18109 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18110 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18111 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18112 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18113 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18114 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18115
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018116 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
18117 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
18118 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
18119 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
18120 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
18121 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
18122 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
18123 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018124 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018125 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018126 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
18127 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
18128 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053018129 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
18130 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018131
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018132 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
18133 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
18134 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
18135 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
18136 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
18137 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
18138 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
18139 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
18140 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
18141 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
18142 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
18143 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
18144 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
18145 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
18146 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018147 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018148 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Raja Mallik321d5712018-05-04 17:22:11 +053018149 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Aditya Bavanari769c3102018-02-23 16:34:40 +053018150 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
18151 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018152 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
18153
18154 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
18155 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
18156 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
18157 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
18158 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
18159 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
18160 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
18161 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
18162 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
18163 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
18164 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
18165 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
18166 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
18167 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
18168 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018169 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari769c3102018-02-23 16:34:40 +053018170 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
18171 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Raja Mallik321d5712018-05-04 17:22:11 +053018172 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018173 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
18174
18175 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
18176 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
18177 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
18178 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
18179 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
18180 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
18181 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
18182 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
18183 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
18184 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
18185 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
18186 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
18187 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
18188 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018189 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018190 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Raja Mallik321d5712018-05-04 17:22:11 +053018191 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018192 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
18193
18194 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
18195 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
18196 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
18197 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
18198 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
18199 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
18200 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
18201 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
18202 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
18203 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
18204 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
18205 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
18206 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
18207 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
18208 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
18209
18210 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18211 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18212 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18213 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18214 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18215 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18216 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18217 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018218 {"LSM1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18219 {"LSM1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018220 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
18221
18222 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18223 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18224 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18225 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18226 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18227 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18228 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18229 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018230 {"LSM2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18231 {"LSM2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018232 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
18233
18234
18235 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18236 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18237 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18238 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18239 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18240 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18241 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18242 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018243 {"LSM3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18244 {"LSM3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018245 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
18246
18247
18248 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18249 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18250 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18251 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18252 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18253 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18254 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18255 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018256 {"LSM4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18257 {"LSM4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018258 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
18259
18260 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18261 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18262 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18263 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18264 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18265 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18266 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18267 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018268 {"LSM5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18269 {"LSM5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018270 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
18271
18272 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18273 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18274 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18275 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18276 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18277 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018278 {"LSM6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18279 {"LSM6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018280 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
18281
18282 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18283 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18284 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18285 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18286 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18287 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018288 {"LSM7 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18289 {"LSM7 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018290 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
18291
18292 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18293 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18294 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18295 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18296 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18297 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018298 {"LSM8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18299 {"LSM8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018300 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
18301
18302
18303 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
18304 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
18305 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
18306 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
18307 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
18308 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
18309 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
18310 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
18311 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
18312 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
18313 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018314 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018315 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
18316 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
18317 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
18318 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
18319 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
18320 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
18321
18322 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
18323 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
18324 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
18325 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
18326 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
18327 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
18328 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
18329 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
18330 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
18331 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
18332 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
18333 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080018334 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
18335 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018336 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018337 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018338 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018339 {"MI2S_RX", NULL, "MI2S_DL_HL"},
18340 {"MI2S_UL_HL", NULL, "MI2S_TX"},
18341 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
18342 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
18343
18344 /* connect to INT4_MI2S_DL_HL since same pcm_id */
18345 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18346 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
18347 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18348 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
18349 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
18350 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
18351 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
18352 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
18353 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
18354 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
18355
18356 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
18357 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018358 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
18359 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018360 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18361 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
18362 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18363 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
18364 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
18365 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
18366 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
18367 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
18368 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
18369 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
18370
18371 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
18372 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
18373 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
18374 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
18375 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
18376 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
18377 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
18378 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
18379 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
18380 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
18381 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
18382 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
18383 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
18384 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
18385 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
18386 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
18387 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
18388 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
18389 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
18390 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
18391 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
18392 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
18393 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
18394 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
18395 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
18396 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
18397 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
18398 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
18399 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
18400 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
18401 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
18402 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018403 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
18404 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
18405 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
18406 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
18407 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
18408 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
18409 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
18410 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018411
18412 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18413 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18414 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18415 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18416 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18417 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18418 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18419 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18420 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18421 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18422 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18423 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18424 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18425 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18426 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18427 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018428 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18429 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18430 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18431 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018432 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
18433
18434 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18435 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18436 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18437 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18438 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18439 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18440 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18441 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18442 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18443 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18444 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18445 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18446 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18447 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18448 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18449 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018450 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18451 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18452 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18453 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018454 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
18455
18456 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18457 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18458 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18459 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18460 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18461 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18462 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18463 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18464 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18465 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18466 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18467 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18468 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18469 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18470 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18471 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018472 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18473 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18474 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18475 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018476 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
18477
18478 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18479 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18480 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18481 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18482 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18483 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18484 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18485 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18486 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18487 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18488 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18489 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18490 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18491 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18492 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18493 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018494 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18495 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18496 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18497 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018498 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
18499
18500 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18501 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18502 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18503 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18504 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18505 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18506 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18507 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18508 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18509 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18510 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18511 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18512 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18513 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18514 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18515 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018516 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18517 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18518 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18519 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018520 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
18521
18522 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18523 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18524 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18525 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18526 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18527 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18528 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18529 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18530 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18531 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18532 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18533 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18534 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18535 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18536 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18537 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018538 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18539 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18540 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18541 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018542 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
18543
18544 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18545 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18546 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18547 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18548 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18549 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18550 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18551 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18552 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18553 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18554 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18555 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18556 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18557 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18558 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18559 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018560 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18561 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18562 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18563 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018564 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
18565
18566 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18567 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18568 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18569 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18570 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18571 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18572 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18573 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18574 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18575 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18576 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18577 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18578 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18579 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18580 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18581 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018582 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18583 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18584 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18585 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018586 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
18587
18588 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18589 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18590 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18591 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18592 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18593 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18594 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18595 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18596 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18597 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18598 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18599 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18600 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18601 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18602 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18603 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018604 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18605 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18606 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18607 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018608 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
18609
18610 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18611 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18612 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18613 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18614 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18615 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18616 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18617 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18618 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18619 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18620 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18621 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18622 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18623 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18624 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18625 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018626 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18627 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18628 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18629 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018630 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
18631
18632 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18633 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18634 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18635 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18636 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18637 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18638 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18639 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18640 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18641 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18642 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18643 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18644 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18645 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18646 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18647 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018648 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18649 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18650 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18651 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018652 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
18653
18654 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18655 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18656 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18657 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18658 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18659 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18660 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18661 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18662 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18663 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18664 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18665 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18666 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18667 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18668 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18669 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018670 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18671 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18672 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18673 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018674 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
18675
18676 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18677 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18678 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18679 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18680 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18681 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18682 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18683 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18684 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18685 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18686 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18687 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18688 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18689 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18690 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18691 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018692 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18693 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18694 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18695 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018696 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
18697
18698 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18699 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18700 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18701 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18702 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18703 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18704 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18705 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18706 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18707 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18708 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18709 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18710 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18711 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18712 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18713 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018714 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18715 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18716 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18717 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018718 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
18719
18720 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18721 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18722 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18723 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18724 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18725 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18726 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18727 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18728 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18729 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18730 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18731 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18732 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18733 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18734 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18735 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018736 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18737 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18738 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18739 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018740 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
18741
18742 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18743 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18744 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18745 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18746 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18747 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18748 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18749 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18750 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18751 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18752 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18753 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18754 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18755 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18756 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18757 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018758 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18759 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18760 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18761 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018762 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
18763
Rohit Kumara5077932017-09-10 22:05:05 +053018764 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18765 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18766 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18767 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18768 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18769 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18770 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18771 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18772 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18773 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18774 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18775 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18776 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18777 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18778 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18779 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18780 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18781 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18782 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18783 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018784 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018785
18786 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18787 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18788 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18789 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18790 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18791 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18792 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18793 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18794 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18795 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18796 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18797 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18798 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18799 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18800 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18801 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18802 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18803 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18804 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18805 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018806 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018807
18808 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18809 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18810 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18811 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18812 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18813 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18814 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18815 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18816 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18817 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18818 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18819 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18820 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18821 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18822 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18823 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18824 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18825 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18826 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18827 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018828 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018829
18830 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18831 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18832 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18833 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18834 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18835 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18836 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18837 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18838 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18839 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18840 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18841 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18842 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18843 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18844 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18845 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18846 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18847 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18848 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18849 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018850 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018851
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018852 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18853 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18854 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18855 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018856 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018857 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18858 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18859 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18860 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18861 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18862 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
18863
18864 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18865 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18866 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18867 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018868 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018869 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18870 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18871 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18872 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18873 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18874 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
18875
18876 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18877 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18878 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18879 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18880 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18881 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18882 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18883 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18884 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018885 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018886 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18887 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18888 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18889 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18890 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018891 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018892 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18893 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
18894 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18895 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18896 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
18897 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18898 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
18899 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
18900 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
18901 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
18902
18903
18904 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18905 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18906 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18907 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18908 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018909 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018910 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
18911
18912 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18913 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18914 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018915 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018916 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
18917
18918 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18919 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18920 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18921 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
18922
18923 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18924 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
18925 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18926 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
18927
Rohit Kumara5077932017-09-10 22:05:05 +053018928 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18929 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
18930 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18931 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
18932
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018933 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18934 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18935 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18936 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18937 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18938 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18939 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18940 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018941 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018942 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
18943 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18944 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18945 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18946 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18947 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18948 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18949 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18950 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18951 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18952 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
18953
18954 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18955 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18956 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18957 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18958 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18959 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18960 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18961 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18962 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18963 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18964 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18965 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
18966
18967 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18968 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18969 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18970 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18971 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18972 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18973 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18974 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18975 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18976 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18977 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18978 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
18979
kunleizdf5a00a2017-11-27 15:27:36 +080018980 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18981 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018982 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080018983
18984 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18985 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018986 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080018987
18988 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18989 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018990 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
18991
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018992 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
18993 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018994 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18995 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18996 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18997 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
18998
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018999 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
19000 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019001 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
19002 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
19003 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
19004 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
19005
19006 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19007 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
19008 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19009 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
19010 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19011 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19012 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
19013 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
19014 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19015 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
19016 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
19017 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
19018 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
19019
19020 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19021 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19022 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19023 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19024 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19025 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19026 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19027 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19028 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19029 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19030 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19031 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19032 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
19033
19034 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19035 {"HDMI", NULL, "HDMI_RX Port Mixer"},
19036
19037 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19038 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
19039
19040 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19041 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
19042
19043 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19044 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19045 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
19046
19047 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19048 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19049 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19050 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019051 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019052 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19053 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19054 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19055 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080019056 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019057 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
19058
19059 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19060 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19061 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19062 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019063 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019064 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19065 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19066 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080019067 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019068 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
19069
19070 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19071 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19072 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19073 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019074 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019075 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19076 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19077 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
19078
19079 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19080 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19081 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19082 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019083 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019084 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19085 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19086 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19087 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19088 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
19089
Rohit Kumara5077932017-09-10 22:05:05 +053019090 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19091 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19092 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19093 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19094 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
19095 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19096 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19097 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
19098
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019099 /* Backend Enablement */
19100
19101 {"BE_OUT", NULL, "PRI_I2S_RX"},
19102 {"BE_OUT", NULL, "SEC_I2S_RX"},
19103 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
19104 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
19105 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
19106 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19107 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
19108 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
19109 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
19110 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
19111 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
19112 {"BE_OUT", NULL, "USB_AUDIO_RX"},
19113 {"BE_OUT", NULL, "HDMI"},
19114 {"BE_OUT", NULL, "DISPLAY_PORT"},
19115 {"BE_OUT", NULL, "SPDIF_RX"},
19116 {"BE_OUT", NULL, "MI2S_RX"},
19117 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
19118 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
19119 {"BE_OUT", NULL, "TERT_MI2S_RX"},
19120 {"BE_OUT", NULL, "SEC_MI2S_RX"},
19121 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
19122 {"BE_OUT", NULL, "PRI_MI2S_RX"},
19123 {"BE_OUT", NULL, "INT0_MI2S_RX"},
19124 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019125 {"BE_OUT", NULL, "INT2_MI2S_RX"},
19126 {"BE_OUT", NULL, "INT3_MI2S_RX"},
19127 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019128 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19129 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
19130 {"BE_OUT", NULL, "INT_FM_RX"},
19131 {"BE_OUT", NULL, "PCM_RX"},
19132 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19133 {"BE_OUT", NULL, "AUX_PCM_RX"},
19134 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
19135 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
19136 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019137 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019138 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19139 {"BE_OUT", NULL, "INT_FM_RX"},
19140 {"BE_OUT", NULL, "PCM_RX"},
19141 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19142 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
19143 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
19144 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
19145 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
19146 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
19147 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
19148 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
19149 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
19150 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
19151 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
19152 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
19153 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
19154 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
19155 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
19156 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
19157 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
19158 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
19159 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
19160 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019161 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
19162 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
19163 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
19164 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019165
19166 {"PRI_I2S_TX", NULL, "BE_IN"},
19167 {"MI2S_TX", NULL, "BE_IN"},
19168 {"QUAT_MI2S_TX", NULL, "BE_IN"},
19169 {"QUIN_MI2S_TX", NULL, "BE_IN"},
19170 {"PRI_MI2S_TX", NULL, "BE_IN"},
19171 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019172 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019173 {"INT2_MI2S_TX", NULL, "BE_IN"},
19174 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019175 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019176 {"INT5_MI2S_TX", NULL, "BE_IN"},
19177 {"SEC_MI2S_TX", NULL, "BE_IN"},
19178 {"SENARY_MI2S_TX", NULL, "BE_IN" },
19179 {"SLIMBUS_0_TX", NULL, "BE_IN" },
19180 {"SLIMBUS_1_TX", NULL, "BE_IN" },
19181 {"SLIMBUS_3_TX", NULL, "BE_IN" },
19182 {"SLIMBUS_4_TX", NULL, "BE_IN" },
19183 {"SLIMBUS_5_TX", NULL, "BE_IN" },
19184 {"SLIMBUS_6_TX", NULL, "BE_IN" },
19185 {"SLIMBUS_7_TX", NULL, "BE_IN" },
19186 {"SLIMBUS_8_TX", NULL, "BE_IN" },
19187 {"USB_AUDIO_TX", NULL, "BE_IN" },
19188 {"INT_BT_SCO_TX", NULL, "BE_IN"},
19189 {"INT_FM_TX", NULL, "BE_IN"},
19190 {"PCM_TX", NULL, "BE_IN"},
19191 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19192 {"BE_OUT", NULL, "STUB_RX"},
19193 {"STUB_TX", NULL, "BE_IN"},
19194 {"STUB_1_TX", NULL, "BE_IN"},
19195 {"BE_OUT", NULL, "AUX_PCM_RX"},
19196 {"AUX_PCM_TX", NULL, "BE_IN"},
19197 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
19198 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
19199 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019200 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019201 {"INCALL_RECORD_TX", NULL, "BE_IN"},
19202 {"INCALL_RECORD_RX", NULL, "BE_IN"},
19203 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
19204 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
19205 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
19206 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19207 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19208 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
19209 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
19210 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
19211 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
19212 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
19213 {"PRI_TDM_TX_0", NULL, "BE_IN"},
19214 {"PRI_TDM_TX_1", NULL, "BE_IN"},
19215 {"PRI_TDM_TX_2", NULL, "BE_IN"},
19216 {"PRI_TDM_TX_3", NULL, "BE_IN"},
19217 {"SEC_TDM_TX_0", NULL, "BE_IN"},
19218 {"SEC_TDM_TX_1", NULL, "BE_IN"},
19219 {"SEC_TDM_TX_2", NULL, "BE_IN"},
19220 {"SEC_TDM_TX_3", NULL, "BE_IN"},
19221 {"TERT_TDM_TX_0", NULL, "BE_IN"},
19222 {"TERT_TDM_TX_1", NULL, "BE_IN"},
19223 {"TERT_TDM_TX_2", NULL, "BE_IN"},
19224 {"TERT_TDM_TX_3", NULL, "BE_IN"},
19225 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
19226 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
19227 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
19228 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Raja Mallik425e1d32018-05-20 19:21:10 +053019229 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019230 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
19231 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
19232 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
19233 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019234};
19235
19236static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
19237 struct snd_pcm_hw_params *params)
19238{
19239 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19240 unsigned int be_id = rtd->dai_link->id;
19241
19242 if (be_id >= MSM_BACKEND_DAI_MAX) {
19243 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19244 return -EINVAL;
19245 }
19246
19247 mutex_lock(&routing_lock);
19248 msm_bedais[be_id].sample_rate = params_rate(params);
19249 msm_bedais[be_id].channel = params_channels(params);
19250 msm_bedais[be_id].format = params_format(params);
19251 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
19252 __func__, msm_bedais[be_id].sample_rate,
19253 msm_bedais[be_id].format, be_id);
19254 mutex_unlock(&routing_lock);
19255 return 0;
19256}
19257
19258static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
19259{
19260 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19261 unsigned int be_id = rtd->dai_link->id;
19262 int i, session_type, path_type, topology;
19263 struct msm_pcm_routing_bdai_data *bedai;
19264 struct msm_pcm_routing_fdai_data *fdai;
19265
19266 pr_debug("%s: substream->pcm->id:%s\n",
19267 __func__, substream->pcm->id);
19268
19269 if (be_id >= MSM_BACKEND_DAI_MAX) {
19270 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19271 return -EINVAL;
19272 }
19273
19274 bedai = &msm_bedais[be_id];
19275 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
19276 0 : 1);
19277 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
19278 path_type = ADM_PATH_PLAYBACK;
19279 else
19280 path_type = ADM_PATH_LIVE_REC;
19281
19282 mutex_lock(&routing_lock);
19283 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19284 if (!is_mm_lsm_fe_id(i))
19285 continue;
19286 fdai = &fe_dai_map[i][session_type];
19287 if (fdai->strm_id != INVALID_SESSION) {
19288 int idx;
19289 int port_id;
19290 unsigned long copp =
19291 session_copp_map[i][session_type][be_id];
19292 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
19293 if (test_bit(idx, &copp))
19294 break;
19295 fdai->be_srate = bedai->sample_rate;
Sachin Mohan Gadag11b247f2018-09-06 19:27:42 +053019296 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019297 topology = adm_get_topology_for_port_copp_idx(port_id,
19298 idx);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019299 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019300 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
19301 __func__, copp, i, session_type, be_id,
19302 topology);
19303 clear_bit(idx,
19304 &session_copp_map[i][session_type][be_id]);
19305 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
19306 (bedai->passthr_mode[i] == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019307 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019308 topology);
19309 }
19310 }
19311
19312 bedai->active = 0;
19313 bedai->sample_rate = 0;
19314 bedai->channel = 0;
19315 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
19316 if (bedai->passthr_mode[i] != LISTEN)
19317 bedai->passthr_mode[i] = LEGACY_PCM;
19318 }
19319 mutex_unlock(&routing_lock);
19320
19321 return 0;
19322}
19323
19324static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
19325{
19326 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19327 unsigned int be_id = rtd->dai_link->id;
19328 int i, path_type, topology;
19329 int session_type = INVALID_SESSION;
19330 struct msm_pcm_routing_bdai_data *bedai;
19331 u32 channels, sample_rate;
19332 uint16_t bits_per_sample = 16, voc_path_type;
19333 struct msm_pcm_routing_fdai_data *fdai;
19334 u32 session_id;
19335 struct media_format_info voc_be_media_format;
19336 bool is_lsm;
19337
19338 pr_debug("%s: substream->pcm->id:%s\n",
19339 __func__, substream->pcm->id);
19340
19341 if (be_id >= MSM_BACKEND_DAI_MAX) {
19342 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19343 return -EINVAL;
19344 }
19345
19346 bedai = &msm_bedais[be_id];
19347
19348 mutex_lock(&routing_lock);
19349 if (bedai->active == 1)
19350 goto done; /* Ignore prepare if back-end already active */
19351
19352 /* AFE port is not active at this point. However, still
19353 * go ahead setting active flag under the notion that
19354 * QDSP6 is able to handle ADM starting before AFE port
19355 * is started.
19356 */
19357 bedai->active = 1;
19358
19359 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19360 if (!(is_mm_lsm_fe_id(i) &&
19361 route_check_fe_id_adm_support(i)))
19362 continue;
19363
19364 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
19365 if (bedai->passthr_mode[i] != LEGACY_PCM)
19366 path_type = ADM_PATH_COMPRESSED_RX;
19367 else
19368 path_type = ADM_PATH_PLAYBACK;
19369 session_type = SESSION_TYPE_RX;
19370 } else {
19371 path_type = ADM_PATH_LIVE_REC;
19372 session_type = SESSION_TYPE_TX;
19373 }
19374
19375 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
19376 (i <= MSM_FRONTEND_DAI_LSM8);
19377 fdai = &fe_dai_map[i][session_type];
19378 if (fdai->strm_id != INVALID_SESSION) {
19379 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019380 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019381
19382 if (session_type == SESSION_TYPE_TX &&
19383 fdai->be_srate &&
19384 (fdai->be_srate != bedai->sample_rate)) {
19385 pr_debug("%s: flush strm %d diff BE rates\n",
19386 __func__,
19387 fdai->strm_id);
19388
19389 if (fdai->event_info.event_func)
19390 fdai->event_info.event_func(
19391 MSM_PCM_RT_EVT_BUF_RECFG,
19392 fdai->event_info.priv_data);
19393 fdai->be_srate = 0; /* might not need it */
19394 }
19395 bits_per_sample = msm_routing_get_bit_width(
19396 bedai->format);
19397
19398 app_type =
19399 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
19400 if (app_type && is_lsm) {
19401 app_type_idx =
19402 msm_pcm_routing_get_lsm_app_type_idx(app_type);
19403 sample_rate =
19404 fe_dai_app_type_cfg[i][session_type][be_id]
19405 .sample_rate;
19406 bits_per_sample =
19407 lsm_app_type_cfg[app_type_idx].bit_width;
19408 } else if (app_type) {
19409 app_type_idx =
19410 msm_pcm_routing_get_app_type_idx(app_type);
19411 sample_rate =
19412 fe_dai_app_type_cfg[i][session_type]
19413 [be_id].sample_rate;
19414 bits_per_sample =
19415 app_type_cfg[app_type_idx].bit_width;
19416 } else
19417 sample_rate = bedai->sample_rate;
19418 /*
19419 * check if ADM needs to be configured with different
19420 * channel mapping than backend
19421 */
19422 if (!bedai->adm_override_ch)
19423 channels = bedai->channel;
19424 else
19425 channels = bedai->adm_override_ch;
19426 acdb_dev_id =
19427 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
19428 topology = msm_routing_get_adm_topology(i, session_type,
19429 be_id);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019430 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019431 sample_rate, channels, topology,
19432 fdai->perf_mode, bits_per_sample,
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019433 app_type, acdb_dev_id,
19434 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019435 if ((copp_idx < 0) ||
19436 (copp_idx >= MAX_COPPS_PER_PORT)) {
19437 pr_err("%s: adm open failed\n", __func__);
19438 mutex_unlock(&routing_lock);
19439 return -EINVAL;
19440 }
19441 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
19442 __func__, i, session_type, be_id);
19443 set_bit(copp_idx,
19444 &session_copp_map[i][session_type][be_id]);
19445
19446 if (msm_is_resample_needed(
19447 sample_rate,
19448 bedai->sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019449 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019450 bedai->sample_rate);
19451
19452 msm_pcm_routing_build_matrix(i, session_type, path_type,
19453 fdai->perf_mode,
19454 bedai->passthr_mode[i]);
19455 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
19456 (bedai->passthr_mode[i] == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019457 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019458 topology, channels);
19459 }
19460 }
19461
19462 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19463 session_id = msm_pcm_routing_get_voc_sessionid(i);
19464 if (session_id) {
19465 pr_debug("%s voice session_id: 0x%x\n", __func__,
19466 session_id);
19467
19468 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
19469 voc_path_type = RX_PATH;
19470 else
19471 voc_path_type = TX_PATH;
19472
19473 voc_set_route_flag(session_id, voc_path_type, 1);
19474
19475 memset(&voc_be_media_format, 0,
19476 sizeof(struct media_format_info));
19477
19478 voc_be_media_format.port_id = bedai->port_id;
19479 voc_be_media_format.num_channels = bedai->channel;
19480 voc_be_media_format.sample_rate = bedai->sample_rate;
19481 voc_be_media_format.bits_per_sample = bedai->format;
19482 /* Defaulting this to 1 for voice call usecases */
19483 voc_be_media_format.channel_mapping[0] = 1;
19484
19485 voc_set_device_config(session_id, voc_path_type,
19486 &voc_be_media_format);
19487
19488 if (voc_get_route_flag(session_id, RX_PATH) &&
19489 voc_get_route_flag(session_id, TX_PATH))
19490 voc_enable_device(session_id);
19491 }
19492 }
19493
19494 /* Check if backend is an external ec ref port and set as needed */
19495 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
19496
19497 memset(&voc_be_media_format, 0,
19498 sizeof(struct media_format_info));
19499
19500 /* Get format info for ec ref port from msm_bedais[] */
19501 voc_be_media_format.port_id = bedai->port_id;
19502 voc_be_media_format.num_channels = bedai->channel;
19503 voc_be_media_format.bits_per_sample = bedai->format;
19504 voc_be_media_format.sample_rate = bedai->sample_rate;
19505 /* Defaulting this to 1 for voice call usecases */
19506 voc_be_media_format.channel_mapping[0] = 1;
19507 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
19508 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
19509 __func__, voc_be_media_format.port_id,
19510 voc_be_media_format.num_channels,
19511 voc_be_media_format.bits_per_sample,
19512 voc_be_media_format.sample_rate);
19513 }
19514
19515done:
19516 mutex_unlock(&routing_lock);
19517
19518 return 0;
19519}
19520
19521static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
19522 int fe_id)
19523{
19524 int index, topo_id, be_idx;
19525 unsigned long pp_config = 0;
19526 bool mute_on;
19527 int latency;
19528 bool compr_passthr_mode = true;
19529
19530 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
19531
19532 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
19533 pr_err("%s: Device pp params on invalid port %d\n",
19534 __func__, port_id);
19535 return -EINVAL;
19536 }
19537
19538 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
19539 if (port_id == msm_bedais[be_idx].port_id)
19540 break;
19541 }
19542
19543 if (be_idx >= MSM_BACKEND_DAI_MAX) {
19544 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
19545 return -EINVAL;
19546 }
19547
19548 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
19549 if (msm_bedais_pp_params[index].port_id == port_id)
19550 break;
19551 }
19552 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
19553 pr_err("%s: Invalid backend pp params index %d\n",
19554 __func__, index);
19555 return -EINVAL;
19556 }
19557
19558 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
19559 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
19560 pr_err("%s: Invalid passthrough topology 0x%x\n",
19561 __func__, topo_id);
19562 return -EINVAL;
19563 }
19564
19565 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
19566 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
19567 compr_passthr_mode = false;
19568
19569 pp_config = msm_bedais_pp_params[index].pp_params_config;
19570 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
19571 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
19572 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
19573 mute_on = msm_bedais_pp_params[index].mute_on;
19574 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19575 adm_send_compressed_device_mute(port_id,
19576 copp_idx,
19577 mute_on);
19578 }
19579 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
19580 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
19581 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
19582 &pp_config);
19583 latency = msm_bedais_pp_params[index].latency;
19584 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19585 adm_send_compressed_device_latency(port_id,
19586 copp_idx,
19587 latency);
19588 }
19589 return 0;
19590}
19591
19592static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
19593 struct snd_ctl_elem_value *ucontrol)
19594{
19595 int pp_id = ucontrol->value.integer.value[0];
19596 int port_id = 0;
19597 int index, be_idx, i, topo_id, idx;
19598 bool mute;
19599 int latency;
19600 bool compr_passthr_mode = true;
19601
19602 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
19603
19604 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
19605 port_id = msm_bedais[be_idx].port_id;
19606 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
19607 break;
19608 }
19609
19610 if (be_idx >= MSM_BACKEND_DAI_MAX) {
19611 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
19612 return -EINVAL;
19613 }
19614
19615 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
19616 if (msm_bedais_pp_params[index].port_id == port_id)
19617 break;
19618 }
19619 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
19620 pr_err("%s: Invalid pp params backend index %d\n",
19621 __func__, index);
19622 return -EINVAL;
19623 }
19624
19625 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
19626 MSM_FRONTEND_DAI_MM_SIZE) {
19627 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
19628 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
19629 compr_passthr_mode = false;
19630
19631 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19632 unsigned long copp =
19633 session_copp_map[i]
19634 [SESSION_TYPE_RX][be_idx];
19635 if (!test_bit(idx, &copp))
19636 continue;
19637 topo_id = adm_get_topology_for_port_copp_idx(port_id,
19638 idx);
19639 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
19640 continue;
19641 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
19642 __func__, port_id, copp, msm_bedais[be_idx].active,
19643 msm_bedais[be_idx].passthr_mode[i]);
19644 switch (pp_id) {
19645 case ADM_PP_PARAM_MUTE_ID:
19646 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
19647 mute = ucontrol->value.integer.value[1] ? true : false;
19648 msm_bedais_pp_params[index].mute_on = mute;
19649 set_bit(ADM_PP_PARAM_MUTE_BIT,
19650 &msm_bedais_pp_params[index].pp_params_config);
19651 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19652 adm_send_compressed_device_mute(port_id,
19653 idx, mute);
19654 break;
19655 case ADM_PP_PARAM_LATENCY_ID:
19656 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
19657 msm_bedais_pp_params[index].latency =
19658 ucontrol->value.integer.value[1];
19659 set_bit(ADM_PP_PARAM_LATENCY_BIT,
19660 &msm_bedais_pp_params[index].pp_params_config);
19661 latency = msm_bedais_pp_params[index].latency =
19662 ucontrol->value.integer.value[1];
19663 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19664 adm_send_compressed_device_latency(port_id,
19665 idx, latency);
19666 break;
19667 default:
19668 pr_info("%s, device pp param %d not supported\n",
19669 __func__, pp_id);
19670 break;
19671 }
19672 }
19673 }
19674 return 0;
19675}
19676
19677static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
19678 struct snd_ctl_elem_value *ucontrol)
19679{
19680 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
19681 return 0;
19682}
19683
19684static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
19685 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
19686 0, 3, msm_routing_get_device_pp_params_mixer,
19687 msm_routing_put_device_pp_params_mixer),
19688};
19689
19690static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
19691 struct snd_ctl_elem_value *ucontrol)
19692{
19693 ucontrol->value.integer.value[0] =
19694 core_get_license_status(ASM_MEDIA_FMT_APTX);
19695 pr_debug("%s: status %ld\n", __func__,
19696 ucontrol->value.integer.value[0]);
19697 return 0;
19698}
19699
19700static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
19701 struct snd_ctl_elem_value *ucontrol)
19702{
19703 int32_t status = 0;
19704
19705 status = core_set_license(ucontrol->value.integer.value[0],
19706 APTX_CLASSIC_DEC_LICENSE_ID);
19707 pr_debug("%s: status %d\n", __func__, status);
19708 return status;
19709}
19710
19711static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
19712 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
19713 0xFFFF, 0, msm_aptx_dec_license_control_get,
19714 msm_aptx_dec_license_control_put),
19715};
19716
Rohit kumar4ea92b12019-02-01 18:05:33 +053019717static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
19718 struct snd_ctl_elem_value *ucontrol)
19719{
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019720 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
Rohit kumar4ea92b12019-02-01 18:05:33 +053019721 uint32_t be_idx = ucontrol->value.integer.value[0];
19722 int i;
19723
Ramjee Singh6c6884d2019-06-12 12:01:52 +053019724 if (be_idx < 0 || be_idx >= MSM_BACKEND_DAI_MAX) {
19725 pr_err("%s: Invalid Backend ID %d\n",
19726 __func__, be_idx);
19727 return -EINVAL;
19728 }
19729
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019730 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
Rohit kumar4ea92b12019-02-01 18:05:33 +053019731 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
19732 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
19733 pr_err("%s: Invalid channel map %d\n",
19734 __func__, channel_map[i]);
19735 return -EINVAL;
19736 }
19737 }
19738 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
19739
19740 return 0;
19741}
19742
19743static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
19744 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
19745 MSM_BACKEND_DAI_MAX, 0,
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019746 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
Rohit kumar4ea92b12019-02-01 18:05:33 +053019747 msm_routing_put_port_chmap_mixer),
19748};
19749
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019750static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
19751 struct snd_ctl_elem_info *uinfo)
19752{
19753 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
19754 uinfo->count = sizeof(be_dai_name_table);
19755 return 0;
19756}
19757
19758static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
19759 unsigned int __user *bytes,
19760 unsigned int size)
19761{
19762 int i;
19763 int ret;
19764
19765 if (size < sizeof(be_dai_name_table)) {
19766 pr_err("%s: invalid size %d requested, returning\n",
19767 __func__, size);
19768 ret = -EINVAL;
19769 goto done;
19770 }
19771
19772 /*
19773 * Fill be_dai_name_table from msm_bedais table to reduce code changes
19774 * needed when adding new backends
19775 */
19776 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
19777 be_dai_name_table[i].be_id = i;
19778 strlcpy(be_dai_name_table[i].be_name,
19779 msm_bedais[i].name,
19780 LPASS_BE_NAME_MAX_LENGTH);
19781 }
19782
19783 ret = copy_to_user(bytes, &be_dai_name_table,
19784 sizeof(be_dai_name_table));
19785 if (ret) {
19786 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
19787 ret = -EFAULT;
19788 }
19789
19790done:
19791 return ret;
19792}
19793
19794static const struct snd_kcontrol_new
19795 msm_routing_be_dai_name_table_mixer_controls[] = {
19796 {
19797 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
19798 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
19799 .info = msm_routing_be_dai_name_table_info,
19800 .name = "Backend DAI Name Table",
19801 .tlv.c = snd_soc_bytes_tlv_callback,
19802 .private_value = (unsigned long) &(struct soc_bytes_ext) {
19803 .max = sizeof(be_dai_name_table),
19804 .get = msm_routing_be_dai_name_table_tlv_get,
19805 }
19806 },
19807};
19808
19809static int msm_routing_stereo_channel_reverse_control_get(
19810 struct snd_kcontrol *kcontrol,
19811 struct snd_ctl_elem_value *ucontrol)
19812{
19813 ucontrol->value.integer.value[0] = swap_ch;
19814 pr_debug("%s: Swap channel value: %ld\n", __func__,
19815 ucontrol->value.integer.value[0]);
19816 return 0;
19817}
19818
19819static int msm_routing_stereo_channel_reverse_control_put(
19820 struct snd_kcontrol *kcontrol,
19821 struct snd_ctl_elem_value *ucontrol)
19822{
19823 int i, idx, be_index, port_id;
19824 int ret = 0;
19825 unsigned long copp;
19826
19827 pr_debug("%s Swap channel value:%ld\n", __func__,
19828 ucontrol->value.integer.value[0]);
19829
19830 swap_ch = ucontrol->value.integer.value[0];
19831
19832 mutex_lock(&routing_lock);
19833 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
19834 port_id = msm_bedais[be_index].port_id;
19835 if (!msm_bedais[be_index].active)
19836 continue;
19837
19838 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
19839 MSM_FRONTEND_DAI_MM_SIZE) {
19840 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
19841 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19842 if (!test_bit(idx, &copp))
19843 continue;
19844
19845 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
19846 __func__, port_id, idx);
19847 ret = adm_swap_speaker_channels(
19848 port_id, idx,
19849 msm_bedais[be_index].sample_rate,
19850 swap_ch);
19851 if (ret) {
19852 pr_err("%s:Swap_channel failed, err=%d\n",
19853 __func__, ret);
19854 goto done;
19855 }
19856 }
19857 }
19858 }
19859done:
19860 mutex_unlock(&routing_lock);
19861 return ret;
19862}
19863
19864static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
19865 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
19866 1, 0, msm_routing_stereo_channel_reverse_control_get,
19867 msm_routing_stereo_channel_reverse_control_put),
19868};
19869
19870static const struct snd_pcm_ops msm_routing_pcm_ops = {
19871 .hw_params = msm_pcm_routing_hw_params,
19872 .close = msm_pcm_routing_close,
19873 .prepare = msm_pcm_routing_prepare,
19874};
19875
19876/* Not used but frame seems to require it */
19877static int msm_routing_probe(struct snd_soc_platform *platform)
19878{
19879 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
19880 ARRAY_SIZE(msm_qdsp6_widgets));
19881 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
19882 ARRAY_SIZE(intercon));
19883
19884 snd_soc_dapm_new_widgets(platform->component.dapm.card);
19885
19886 snd_soc_add_platform_controls(platform, lsm_controls,
19887 ARRAY_SIZE(lsm_controls));
19888
19889 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
19890 ARRAY_SIZE(aanc_slim_0_rx_mux));
19891
19892 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
19893 ARRAY_SIZE(msm_voc_session_controls));
19894
19895 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
19896 ARRAY_SIZE(app_type_cfg_controls));
19897
19898 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
19899 ARRAY_SIZE(lsm_app_type_cfg_controls));
19900
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070019901 snd_soc_add_platform_controls(platform, module_cfg_controls,
19902 ARRAY_SIZE(module_cfg_controls));
19903
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019904 snd_soc_add_platform_controls(platform,
19905 stereo_to_custom_stereo_controls,
19906 ARRAY_SIZE(stereo_to_custom_stereo_controls));
19907
19908 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
19909 ARRAY_SIZE(ec_ref_param_controls));
19910
19911 snd_soc_add_platform_controls(platform, channel_mixer_controls,
19912 ARRAY_SIZE(channel_mixer_controls));
19913
19914 msm_qti_pp_add_controls(platform);
19915
19916 msm_dts_srs_tm_add_controls(platform);
19917
19918 msm_dolby_dap_add_controls(platform);
19919
19920 snd_soc_add_platform_controls(platform,
19921 use_ds1_or_ds2_controls,
19922 ARRAY_SIZE(use_ds1_or_ds2_controls));
19923
19924 snd_soc_add_platform_controls(platform,
19925 device_pp_params_mixer_controls,
19926 ARRAY_SIZE(device_pp_params_mixer_controls));
19927
19928 snd_soc_add_platform_controls(platform,
19929 msm_routing_be_dai_name_table_mixer_controls,
19930 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
19931
19932 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
19933 ARRAY_SIZE(msm_source_tracking_controls));
19934 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
19935 ARRAY_SIZE(adm_channel_config_controls));
19936
19937 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
19938 ARRAY_SIZE(aptx_dec_license_controls));
19939 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
19940 ARRAY_SIZE(stereo_channel_reverse_control));
Rohit kumar4ea92b12019-02-01 18:05:33 +053019941 snd_soc_add_platform_controls(platform,
19942 port_multi_channel_map_mixer_controls,
19943 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
19944
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019945 return 0;
19946}
19947
19948int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
19949{
19950 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
19951}
19952
19953void msm_routing_pcm_free(struct snd_pcm *pcm)
19954{
19955 msm_pcm_routing_hwdep_free(pcm);
19956}
19957
19958static struct snd_soc_platform_driver msm_soc_routing_platform = {
19959 .ops = &msm_routing_pcm_ops,
19960 .probe = msm_routing_probe,
19961 .pcm_new = msm_routing_pcm_new,
19962 .pcm_free = msm_routing_pcm_free,
19963};
19964
19965static int msm_routing_pcm_probe(struct platform_device *pdev)
19966{
19967
19968 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
19969 return snd_soc_register_platform(&pdev->dev,
19970 &msm_soc_routing_platform);
19971}
19972
19973static int msm_routing_pcm_remove(struct platform_device *pdev)
19974{
19975 snd_soc_unregister_platform(&pdev->dev);
19976 return 0;
19977}
19978
19979static const struct of_device_id msm_pcm_routing_dt_match[] = {
19980 {.compatible = "qcom,msm-pcm-routing"},
19981 {}
19982};
19983MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
19984
19985static struct platform_driver msm_routing_pcm_driver = {
19986 .driver = {
19987 .name = "msm-pcm-routing",
19988 .owner = THIS_MODULE,
19989 .of_match_table = msm_pcm_routing_dt_match,
19990 },
19991 .probe = msm_routing_pcm_probe,
19992 .remove = msm_routing_pcm_remove,
19993};
19994
19995int msm_routing_check_backend_enabled(int fedai_id)
19996{
19997 int i;
19998
19999 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
20000 /* bad ID assigned in machine driver */
20001 pr_err("%s: bad MM ID\n", __func__);
20002 return 0;
20003 }
20004 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
20005 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
20006 return msm_bedais[i].active;
20007 }
20008 return 0;
20009}
20010
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020011static int get_cal_type_index(int32_t cal_type)
20012{
20013 int ret = -EINVAL;
20014
20015 switch (cal_type) {
20016 case ADM_TOPOLOGY_CAL_TYPE:
20017 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
20018 break;
20019 case ADM_LSM_TOPOLOGY_CAL_TYPE:
20020 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
20021 break;
20022 default:
20023 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
20024 }
20025 return ret;
20026}
20027
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020028static int msm_routing_set_cal(int32_t cal_type,
20029 size_t data_size, void *data)
20030{
20031 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020032 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020033 pr_debug("%s\n", __func__);
20034
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020035 cal_index = get_cal_type_index(cal_type);
20036 if (cal_index < 0) {
20037 pr_err("%s: Could not get cal index %d\n",
20038 __func__, cal_index);
20039 ret = -EINVAL;
20040 goto done;
20041 }
20042
20043 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020044 if (ret < 0) {
20045 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
20046 __func__, ret, cal_type);
20047 ret = -EINVAL;
20048 goto done;
20049 }
20050done:
20051 return ret;
20052}
20053
20054static void msm_routing_delete_cal_data(void)
20055{
20056 pr_debug("%s\n", __func__);
20057
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020058 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020059}
20060
20061static int msm_routing_init_cal_data(void)
20062{
20063 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020064 struct cal_type_info cal_type_info[] = {
20065 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020066 {NULL, NULL, NULL,
20067 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020068 {NULL, NULL, cal_utils_match_buf_num} },
20069
20070 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
20071 {NULL, NULL, NULL,
20072 msm_routing_set_cal, NULL, NULL} },
20073 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020074 };
20075 pr_debug("%s\n", __func__);
20076
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020077 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
20078 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020079 if (ret < 0) {
20080 pr_err("%s: could not create cal type!\n",
20081 __func__);
20082 ret = -EINVAL;
20083 goto err;
20084 }
20085
20086 return ret;
20087err:
20088 msm_routing_delete_cal_data();
20089 return ret;
20090}
20091
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053020092int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020093{
20094 mutex_init(&routing_lock);
20095 if (msm_routing_init_cal_data())
20096 pr_err("%s: could not init cal data!\n", __func__);
20097
20098 afe_set_routing_callback(
20099 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
20100
20101 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20102 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
20103
20104 return platform_driver_register(&msm_routing_pcm_driver);
20105}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020106
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053020107void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020108{
20109 msm_routing_delete_cal_data();
20110 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20111 mutex_destroy(&routing_lock);
20112 platform_driver_unregister(&msm_routing_pcm_driver);
20113}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020114
20115MODULE_DESCRIPTION("MSM routing platform driver");
20116MODULE_LICENSE("GPL v2");