blob: ed586656de0b5895b4de47ef7736a117ec6e8078 [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;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303799 default:
3800 msm_route_ec_ref_rx = 0; /* NONE */
3801 pr_err("%s EC ref rx %ld not valid\n",
3802 __func__, ucontrol->value.integer.value[0]);
3803 ec_ref_port_id = AFE_PORT_INVALID;
3804 break;
3805 }
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +05303806 msm_ec_ref_port_id = ec_ref_port_id;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303807 adm_ec_ref_rx_id(ec_ref_port_id);
3808 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3809 __func__, msm_route_ec_ref_rx);
3810 mutex_unlock(&routing_lock);
3811 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3812 msm_route_ec_ref_rx, e, update);
3813 return 0;
3814}
3815
3816static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3817 "PRI_MI2S_TX", "SEC_MI2S_TX",
3818 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3819 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3820 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3821 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Bala Kishore Pati1a044712018-10-03 12:12:36 +05303822 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3823 "PRI_TDM_RX_1"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303824
3825static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3826 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3827};
3828
3829static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3830 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3831 msm_route_ec_ref_rx_enum[0],
3832 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3833
3834static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3835 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3836 msm_route_ec_ref_rx_enum[0],
3837 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3838
3839static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3840 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3841 msm_route_ec_ref_rx_enum[0],
3842 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3843
3844static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3845 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3846 msm_route_ec_ref_rx_enum[0],
3847 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3848
3849static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3850 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3851 msm_route_ec_ref_rx_enum[0],
3852 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3853
3854static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
3855 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
3856 msm_route_ec_ref_rx_enum[0],
3857 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3858
3859static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
3860 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
3861 msm_route_ec_ref_rx_enum[0],
3862 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3863
3864static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
3865 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
3866 msm_route_ec_ref_rx_enum[0],
3867 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3868
Asish Bhattacharya34504582017-08-08 12:55:01 +05303869static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
3870 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
3871 msm_route_ec_ref_rx_enum[0],
3872 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3873
Laxminath Kasam38070be2017-08-17 18:21:59 +05303874static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
3875 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
3876 msm_route_ec_ref_rx_enum[0],
3877 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3878
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303879static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
3880 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
3881 msm_route_ec_ref_rx_enum[0],
3882 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3883
3884static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
3885 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
3886 msm_route_ec_ref_rx_enum[0],
3887 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3888
3889static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
3890 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
3891 msm_route_ec_ref_rx_enum[0],
3892 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3893
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05303894static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
3895 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
3896 msm_route_ec_ref_rx_enum[0],
3897 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3898
3899static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
3900 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
3901 msm_route_ec_ref_rx_enum[0],
3902 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3903
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303904static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
3905 struct snd_ctl_elem_value *ucontrol)
3906{
3907 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
3908
3909 mutex_lock(&routing_lock);
3910 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
3911 mutex_unlock(&routing_lock);
3912 return 0;
3913}
3914
3915static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
3916 struct snd_ctl_elem_value *ucontrol)
3917{
Asish Bhattacharya34504582017-08-08 12:55:01 +05303918 struct snd_soc_dapm_widget *widget =
3919 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303920 int mux = ucontrol->value.enumerated.item[0];
3921 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3922 int ret = 1;
3923 bool state = true;
3924 uint16_t ext_ec_ref_port_id;
3925 struct snd_soc_dapm_update *update = NULL;
3926
3927 if (mux >= e->items) {
3928 pr_err("%s: Invalid mux value %d\n", __func__, mux);
3929 return -EINVAL;
3930 }
3931
3932 mutex_lock(&routing_lock);
3933 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
3934
3935 switch (msm_route_ext_ec_ref) {
3936 case EXT_EC_REF_PRI_MI2S_TX:
3937 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3938 break;
3939 case EXT_EC_REF_SEC_MI2S_TX:
3940 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3941 break;
3942 case EXT_EC_REF_TERT_MI2S_TX:
3943 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3944 break;
3945 case EXT_EC_REF_QUAT_MI2S_TX:
3946 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3947 break;
3948 case EXT_EC_REF_QUIN_MI2S_TX:
3949 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
3950 break;
3951 case EXT_EC_REF_SLIM_1_TX:
3952 ext_ec_ref_port_id = SLIMBUS_1_TX;
3953 break;
3954 case EXT_EC_REF_NONE:
3955 default:
3956 ext_ec_ref_port_id = AFE_PORT_INVALID;
3957 state = false;
3958 break;
3959 }
3960
3961 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
3962 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
3963
3964 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
3965 mutex_unlock(&routing_lock);
3966 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
3967 update);
3968 } else {
3969 ret = -EINVAL;
3970 mutex_unlock(&routing_lock);
3971 }
3972 return ret;
3973}
3974
3975static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
3976 "SEC_MI2S_TX", "TERT_MI2S_TX",
3977 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
3978 "SLIM_1_TX"};
3979
3980static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
3981 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
3982};
3983
3984static const struct snd_kcontrol_new voc_ext_ec_mux =
3985 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
3986 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
3987
3988
3989static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05303990 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
3991 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303992 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
3993 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05303994 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
3995 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303996 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
3997 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05303998 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
3999 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304000 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4001 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304002 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4003 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304004 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4005 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304006 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4007 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304008 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4009 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304010 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4011 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304012 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4013 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304014 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4015 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304016 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4017 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304018 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4019 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304020 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4021 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304022 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4023 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304024 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4025 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304026 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4027 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304028 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4029 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304030 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4031 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304032 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4033 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304034 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4035 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304036 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4037 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304038 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4039 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304040 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4041 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304042 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4043 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304044 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4045 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304046 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4047 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304048 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4049 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304050 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4051 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304052 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4053 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304054 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4055 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304056 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4057 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304058 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4059 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304060 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4061 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304062 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4063 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304064 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4065 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304066 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4067 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304068 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4069 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304070 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4071 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304072 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4073 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304074};
4075
4076static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304077 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4078 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304081 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4082 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304083 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304085 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4086 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304087 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304089 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4090 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304091 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304093 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4094 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304095 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304097 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4098 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304099 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304101 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4102 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304103 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4104 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304105 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4106 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304107 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4108 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304109 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4110 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304111 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4112 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304113 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4114 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304115 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4116 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304117 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4118 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304119 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4120 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304121 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4122 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304123 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4124 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304125 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4126 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304127 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4128 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304129 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4130 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304131 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4132 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304133 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4134 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304135 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4136 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304137 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4138 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304139 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4140 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304141 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4142 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4144 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304145 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4146 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304147 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4148 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304149 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4150 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304151 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4152 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304153 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4154 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304155 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4156 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304157 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4158 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304159 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4160 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304161};
4162
4163static const struct snd_kcontrol_new spdif_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304164 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4165 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304166 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304168 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4169 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304170 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304172 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4173 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304174 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304176 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4177 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304178 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304180 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4181 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304182 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304184 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4185 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304186 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304188 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4189 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304190 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4191 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304192 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4193 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304194 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4195 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304196 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4197 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304198 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4199 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304200 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4201 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304202 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4203 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304204 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4205 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304206 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4207 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304208 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4209 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304210 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4211 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304212 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4213 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304214 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4215 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304216 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4217 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304218 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4219 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304220 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4221 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304222 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4223 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304224 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4225 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304226 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4227 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304228 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4229 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304230 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4231 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304232 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304236 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4237 MSM_BACKEND_DAI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304238 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4239 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304240 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4241 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304242 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4243 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304244 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4245 MSM_BACKEND_DAI_SPDIF_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304246 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4247 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304248};
4249
4250static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304251 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4252 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304253 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4254 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304255 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4256 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304257 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4258 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304259 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4260 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304261 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4262 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304263 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4264 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304265 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4266 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304267 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4268 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304269 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4270 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304271 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4272 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304273 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4274 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304275 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4276 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304277 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4278 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304279 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4280 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304281 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4282 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304283 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4284 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304285 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4286 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304287 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4288 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304289 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4290 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304291 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4292 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304293 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4294 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304295 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4296 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304297 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4298 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304299 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4300 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304301 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4302 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304303 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4304 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304305 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4306 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304307 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4308 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304309 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4310 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304311 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4312 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304313 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4314 msm_routing_put_audio_mixer),
4315};
4316
4317static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304318 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4319 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304320 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4321 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304322 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4323 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304324 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4325 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304326 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4327 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304328 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4329 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304330 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4331 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304332 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4333 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304334 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4335 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304336 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4337 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304338 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4339 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304340 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4341 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304342 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4343 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304344 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4345 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304346 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4347 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304348 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4349 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304350 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4351 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304352 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4353 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304354 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4355 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304356 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4357 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304358 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4359 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304360 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4361 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304362 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4363 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304364 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4365 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304366 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4367 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304368 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4369 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304370 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4371 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304372 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4373 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304374 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4375 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304376 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4377 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304378 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4379 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304380 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4381 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304382 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4383 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304384 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4385 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304386 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4387 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304388 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4389 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304390 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4391 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304392 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4393 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304394 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4395 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304396 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4397 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304398 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4399 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304400 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4401 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304402};
4403
4404static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304405 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4406 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304407 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4408 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304409 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4410 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304411 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4412 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304413 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4414 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304415 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4416 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304417 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4418 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304419 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4420 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304421 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4422 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304423 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4424 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304425 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4426 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304427 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4428 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304429 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4430 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304431 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4432 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304433 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4434 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304435 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4436 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304437 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4438 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304439 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4440 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304441 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4442 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304443 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4444 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304445 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4446 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304447 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4448 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304449 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4450 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304451 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4452 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304453 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4454 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304455 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4456 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304457 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4458 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304459 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4460 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304461 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4462 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304463 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4464 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304465 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4466 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304467 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4468 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304469 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4470 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304471 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4472 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304473 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4474 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304475 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4476 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304477 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4478 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304479 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4480 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304481 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4482 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304483 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4484 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304485 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4486 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304487 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4488 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304489};
4490
4491static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304492 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4493 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304494 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4495 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304496 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4497 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304498 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4499 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304500 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4501 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304502 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4503 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304504 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4505 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304506 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4507 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304508 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4509 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304510 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4511 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304512 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4513 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304514 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4515 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304516 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4517 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304518 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4519 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304520 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4521 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304522 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4523 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304524 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4525 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304526 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4527 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304528 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4529 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304530 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4531 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304532 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4533 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304534 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4535 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304536 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4537 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304538 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4539 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304540 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4541 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304542 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4543 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304544 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4545 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304546 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4547 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304548 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4549 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304550 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4551 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304552 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4553 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304554 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4555 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304556 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4557 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304558 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4559 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304560 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4561 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304562 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4563 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304564 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4565 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304566 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4567 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304568 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4569 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304570 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4571 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304572 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4573 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304574 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4575 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304576};
4577
4578static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304579 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4580 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304581 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4582 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304583 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4584 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304585 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4586 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304587 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4588 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304589 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4590 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304591 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4592 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304593 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4594 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304595 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4596 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304597 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4598 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304599 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4600 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304601 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4602 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304603 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4604 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304605 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4606 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304607 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4608 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304609 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4610 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304611 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4612 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304613 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4614 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304615 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4616 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304617 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4618 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304619 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4620 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304621 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4622 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304623 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4624 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304625 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4626 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304627 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4628 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304629 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4630 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304631 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4632 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304633 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4634 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304635 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4636 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304637 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4638 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304639 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4640 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304641 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4642 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304643 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4644 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304645 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4646 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304647 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4648 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304649 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4650 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304651 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4652 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304653 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4654 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304655 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4656 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304657 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4658 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304659 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4660 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304661 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4662 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304663};
4664
4665static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304666 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4667 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304668 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4669 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304670 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4671 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4673 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304674 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4675 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304676 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4677 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304678 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4679 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304680 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4681 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304682 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4683 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304684 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4685 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304686 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4687 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304688 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4689 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304690 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4691 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304692 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4693 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304694 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4695 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304696 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4697 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304698 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4699 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304700 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4701 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304702 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4703 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304704 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4705 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304706 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4707 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304708 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4709 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304710 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4711 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304712 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4713 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304714 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4715 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304716 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4717 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304718 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4719 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304720 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4721 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304722 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4723 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304724 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4725 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304726 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4727 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304728 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4729 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304730 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4731 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304732 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4733 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304734 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4735 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304736 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4737 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304738 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4739 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304740 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4741 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304742 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4743 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304744 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4745 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304746 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4747 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304748 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4749 msm_routing_put_audio_mixer),
4750
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304751};
4752
4753static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304754 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4755 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304756 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4757 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304758 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304762 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304766 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304770 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304774 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4775 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304776 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4777 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304778 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4779 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304780 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4781 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304782 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4783 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304784 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4785 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304786 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4787 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304788 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4789 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304790 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4791 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4793 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304794 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4795 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4797 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304798 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4799 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304800 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4801 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304802 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4803 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304804 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4805 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304806 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4807 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304808 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4809 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304810 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4811 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304812 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4813 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304814 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4815 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304816 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4817 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304818 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4819 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304820 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4821 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304822 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4823 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304824 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4825 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304826 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304830};
4831
4832static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304833 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4834 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304835 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4836 msm_routing_put_audio_mixer),
4837};
4838
4839static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304840 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4841 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304842 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4843 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304844 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4845 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304846 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4847 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304848 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4849 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304850 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4851 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304852 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4853 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304854 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4855 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304856 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4857 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304858 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4859 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304860 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4861 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4863 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304864 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4865 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304866 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4867 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304868 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4869 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304870 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4871 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304872 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4873 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304874 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4875 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304876 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4877 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304878 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4879 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304880 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4881 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304882 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4883 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304884 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4885 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304886 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4887 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304888 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4889 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304890 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4891 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304892 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4893 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304894 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4895 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304896 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4897 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304898 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4899 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304900 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4901 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4903 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304904 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4905 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304906 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4907 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304908 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4909 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304910 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4911 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304912 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4913 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304914 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4915 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304916 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4917 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304918 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4919 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304920 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4921 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05304922 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4923 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304924};
4925
4926static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05304927 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4928 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304929 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4930 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304931 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4932 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304933 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4934 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304935 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4936 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304937 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4938 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304939 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4940 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304941 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4942 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304943 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4944 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304945 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4946 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304947 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4948 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304949 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4950 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304951 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4952 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304953 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4954 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304955 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4956 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304957 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4958 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304959 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4960 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304961 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4962 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304963 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4964 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304965 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4966 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304967 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4968 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304969 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4970 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304971 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4972 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304973 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4974 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304975 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4976 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304977 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4978 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304979 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4980 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304981 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4982 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304983 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4984 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304985 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4986 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304987 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4988 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304989 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4990 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304991 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4992 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304993 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4994 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304995 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4996 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304997 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4998 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05304999 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5000 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305001 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5002 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305003 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5004 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305005 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5006 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305007 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5008 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305009 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5010 msm_routing_put_audio_mixer),
Ramjee Singh29973d72020-03-06 09:21:43 +05305011 SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
5012 MSM_BACKEND_DAI_PRI_MI2S_RX,
5013 MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
5014 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305015};
5016
5017static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305018 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5019 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305020 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5021 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305022 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5023 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305024 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5025 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305026 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5027 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305028 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5029 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305030 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5031 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305032 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5033 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305034 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5035 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305036 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5037 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305038 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5039 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305040 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5041 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305042 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5043 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305044 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5045 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305046 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5047 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305048 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5049 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305050 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5051 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305052 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5053 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305054 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5055 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305056 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5057 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305058 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5059 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305060 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5061 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305062 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5063 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305064 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5065 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305066 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5067 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305068 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5069 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305070 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5071 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305072 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5073 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305074 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5075 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305076 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5077 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305078 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5079 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305080 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5081 msm_routing_put_audio_mixer),
5082};
5083
5084static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305085 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5086 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305089 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5090 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305091 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305093 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5094 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305095 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305097 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5098 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305099 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305101 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5102 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305103 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5104 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305105 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5106 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305107 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5108 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305109 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5110 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305111 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5112 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305113 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5114 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305115 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5116 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305117 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5118 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305119 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5120 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305121 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5122 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305123 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5124 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305125 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5126 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305127 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5128 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305129 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5130 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305131 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5132 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305133 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5134 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305135 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5136 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305137 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5138 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305139 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5140 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305141 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5142 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305143 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5144 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305145 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5146 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305147 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5148 msm_routing_put_audio_mixer),
5149};
5150
5151static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305152 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5153 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305154 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5155 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305156 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5157 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305158 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5159 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305160 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5161 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305162 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5163 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305164 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5165 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305166 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5167 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305168 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5169 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305170 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5171 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305172 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5173 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305174 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5175 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305176 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5177 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305178 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5179 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305180 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5181 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305182 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5183 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305184 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5185 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305186 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5187 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305188 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5189 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305190 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5191 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305192 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5193 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305194 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5195 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305196 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5197 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305198 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5199 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305200 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5201 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305202 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5203 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305204 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5205 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305206 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5207 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305208 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5209 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305210 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5211 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305212 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5213 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305214 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5215 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305216 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5217 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305218 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5219 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305220 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5221 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305222 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5223 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305224 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5225 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305226 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5227 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305228 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5229 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305230 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5231 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305232 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5233 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305234 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5235 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305236};
5237
5238static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305239 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5240 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305241 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5242 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305243 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5244 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305245 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5246 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305247 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5248 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305249 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5250 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305251 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5252 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305253 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5254 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305255 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5256 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5258 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305259 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5260 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305261 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5262 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305263 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5264 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305265 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5266 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305267 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5268 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305269 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5270 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305271 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5272 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305273 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5274 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305275 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5276 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305277 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5278 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305279 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5280 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305281 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5282 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305283 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5284 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305285 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5286 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305287 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5288 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305289 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5290 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305291 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5292 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305293 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5294 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305295 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5296 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305297 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5298 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305299 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5300 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305301 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5302 msm_routing_put_audio_mixer),
5303};
5304
5305 /* incall music delivery mixer */
5306static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305307 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5308 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305309 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5310 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305311 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5312 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305313 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5314 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305315 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5316 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305317 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5318 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305319 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5320 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305321 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5322 msm_routing_put_audio_mixer),
5323};
5324
5325static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305326 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5327 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305328 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5329 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305330 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5331 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305332 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5333 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305334 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5335 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305336 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5337 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305338 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5339 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305340 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5341 msm_routing_put_audio_mixer),
5342};
5343
5344static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305345 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5346 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305347 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5348 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305349 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5350 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305351 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5352 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305353 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5354 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305355 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5356 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305357 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5358 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305359 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5360 msm_routing_put_audio_mixer),
5361};
5362
5363static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305364 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5365 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305366 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5367 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305368 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5369 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305370 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5371 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305372 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305374 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305376 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305378 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305380 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5381 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305382 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5383 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305384 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5385 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305386 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5387 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305388 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5389 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305390 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5391 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305392 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5393 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305394 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5395 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305396 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5397 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305398 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5399 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305400 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5401 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5403 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305404 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5405 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305406 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5407 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305408 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5409 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305410 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5411 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305412 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305416 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305420 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305424 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
5428};
5429
5430static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305431 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5432 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305433 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5434 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305435 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5436 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305437 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5438 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305439 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305443 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5444 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305445 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5446 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305447 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5448 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305449 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5450 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305451 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5452 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305453 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5454 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305455 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5456 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305457 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5458 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305459 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5460 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305461 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5462 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305463 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5464 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305465 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5466 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305467 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5468 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305469 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5470 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305471 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5472 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305473 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5474 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305475 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5476 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305477 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5478 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305479 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5480 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305481 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5482 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305483 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5484 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305485 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5486 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305487 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5488 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305489 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5490 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305491 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5492 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305493 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5494 msm_routing_put_audio_mixer),
5495};
5496
5497static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305498 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5499 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305500 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5501 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305502 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5503 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305504 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5505 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305506 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5507 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305508 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5509 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305510 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5511 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305512 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5513 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305514 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5515 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305516 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5517 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305518 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5519 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305520 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5521 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305522 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5523 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305524 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5525 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305526 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5527 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305528 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5529 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305530 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305534 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305536 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305538 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5539 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5541 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305542 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5543 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305544 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5545 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305546 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5547 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305548 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5549 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305550 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5551 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305552 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5553 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305554 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5555 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305556 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5557 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305558 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5559 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305560 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5561 msm_routing_put_audio_mixer),
5562};
5563
5564static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305565 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5566 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305567 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5568 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305569 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5570 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305571 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5572 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305573 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5574 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305575 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5576 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305577 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5578 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305579 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5580 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305581 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5582 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305583 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5584 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305585 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5586 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305587 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5588 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305589 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5590 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305591 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5592 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305593 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5594 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305595 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5596 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305597 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5598 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305599 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5600 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305601 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305603 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305605 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5606 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305607 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5608 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305609 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5610 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305611 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5612 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305613 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305615 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305617 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5618 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305619 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5620 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305621 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5622 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305623 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5624 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305625 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5626 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305627 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5628 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305629 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5630 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305631 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5632 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305633 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5634 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305635 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5636 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305637 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5638 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305639 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5640 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305641 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5642 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305643 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5644 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305645 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5646 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305647 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5648 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305649};
5650
5651static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305652 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5653 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305654 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5655 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305656 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5657 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305658 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5659 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305660 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5661 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305662 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5663 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305664 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5665 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305666 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5667 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305668 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5669 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305670 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5671 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305672 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5673 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305674 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5675 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305676 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5677 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305678 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5679 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305680 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5681 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305682 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5683 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305684 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5685 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305686 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5687 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305688 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5689 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305690 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5691 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305692 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5693 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305694 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5695 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305696 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5697 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305698 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5699 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305700 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5701 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305702 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5703 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305704 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5705 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305706 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5707 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305708 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5709 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305710 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5711 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305712 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5713 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305714 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5715 msm_routing_put_audio_mixer),
5716};
5717
5718static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305719 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5720 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305721 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5722 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305723 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5724 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305725 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5726 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305727 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5728 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305729 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5730 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305731 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5732 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305733 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5734 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305735 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5736 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305737 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5738 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305739 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5740 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305741 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5742 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305743 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5744 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305745 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5746 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305747 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5748 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305749 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5750 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305751 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5752 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305753 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5754 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305755 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5756 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305757 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5758 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305759 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5760 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305761 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5762 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305763 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5764 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305765 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5766 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305767 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5768 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305769 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5770 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305771 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5772 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305773 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5774 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305775 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5776 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305777 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5778 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305779 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5780 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305781 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5782 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305783 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5784 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305785 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5786 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305787 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5788 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305789 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5790 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305791 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5792 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305793 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5794 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305795 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5796 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305797 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5798 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305799 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5800 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305801 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5802 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305803};
5804
5805static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305806 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5807 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305808 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5809 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305810 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5811 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305812 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5813 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305814 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5815 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305816 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5817 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305818 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5819 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305820 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5821 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305822 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5823 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305824 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5825 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305826 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5827 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305828 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5829 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305830 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5831 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305832 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5833 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305834 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5835 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305836 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5837 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305838 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5839 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305840 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5841 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305842 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5843 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305844 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5845 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305846 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5847 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305848 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5849 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305850 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5851 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305852 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5853 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305854 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5855 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305856 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5857 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305858 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5859 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305860 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5861 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305862 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5863 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305864 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5865 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305866 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5867 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305868 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5869 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305870 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5871 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305872 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5873 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305874 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5875 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305876 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5877 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305878 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5879 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305880 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5881 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305882 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5883 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305884 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5885 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305886 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5887 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305888 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5889 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305890};
5891
5892static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305893 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5894 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305895 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5896 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305897 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5898 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305899 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5900 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305901 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5902 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305903 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5904 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305905 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5906 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305907 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5908 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305909 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5910 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305911 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5912 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305913 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5914 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305915 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5916 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305917 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5918 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305919 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5920 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305921 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5922 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305923 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5924 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305925 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5926 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305927 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5928 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305929 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5930 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305931 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5932 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305933 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5934 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305935 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5936 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305937 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5938 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305939 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5940 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305941 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5942 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305943 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5944 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305945 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5946 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305947 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5948 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305949 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5950 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305951 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5952 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305953 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5954 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305955 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5956 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305957 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5958 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305959 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5960 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305961 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5962 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305963 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5964 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305965 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5966 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305967 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5968 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305969 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5970 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305971 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5972 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305973 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5974 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05305975 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5976 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305977};
5978
5979static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05305980 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5981 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305982 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5983 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305984 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5985 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305986 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5987 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305988 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5989 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305990 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5991 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305992 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5993 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5995 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05305996 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5997 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305998 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5999 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306000 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6001 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306002 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6003 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306004 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6005 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306006 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6007 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306008 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6009 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306010 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6011 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306012 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6013 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306014 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6015 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306016 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6017 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306018 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6019 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306020 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6021 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306022 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6023 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306024 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6025 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306026 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6027 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306028 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6029 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306030 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6031 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306032 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6033 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306034 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6035 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306036 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6037 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306038 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6039 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306040 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6041 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306042 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6043 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306044 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6045 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306046 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6047 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306048 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6049 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306050 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6051 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306052 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6053 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306054 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6055 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306056 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6057 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05306058 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6059 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306060 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6061 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05306062 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6063 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306064};
6065
6066static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306067 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6068 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306069 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6070 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306071 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6072 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306073 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6074 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306075 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6076 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306077 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6078 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306079 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6080 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306081 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6082 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306083 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6084 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306085 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6086 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306087 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6088 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306089 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6090 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306091 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6092 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306093 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306095 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6096 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6098 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306099 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6100 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306101 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6102 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306103 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6104 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306105 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6106 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306107 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6108 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306109 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6110 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306111 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6112 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306113 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6114 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306115 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6116 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306117 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6118 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306119 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6120 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306121 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6122 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306123 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6124 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306125 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6126 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306127 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6128 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306129 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6130 msm_routing_put_audio_mixer),
6131};
6132
6133static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306134 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6135 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306136 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6137 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306138 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6139 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306140 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6141 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306142 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6143 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306144 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6145 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306146 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6147 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306148 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6149 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306150 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6151 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306152 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6153 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306154 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6155 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306156 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6157 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306158 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6159 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306160 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6161 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306162 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6163 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306164 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6165 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306166 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6167 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306168 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6169 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306170 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6171 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306172 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6173 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306174 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6175 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306176 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6177 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306178 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6179 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306180 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6181 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306182 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6183 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306184 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6185 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306186 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6187 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306188 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6189 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306190 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6191 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306192 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6193 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306194 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6195 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306196 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6197 msm_routing_put_audio_mixer),
6198};
6199
Rohit Kumara5077932017-09-10 22:05:05 +05306200static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306201 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6202 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6204 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306205 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6206 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306207 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6208 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306209 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6210 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306211 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6212 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306213 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6214 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306215 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6216 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306217 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6218 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306219 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6220 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306221 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6222 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306223 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6224 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306225 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6226 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306227 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6228 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306229 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6230 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306231 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6232 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306233 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6234 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306235 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6236 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306237 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6238 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306239 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6240 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306241 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6242 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306243 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6244 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306245 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6246 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306247 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6248 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306249 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6250 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306251 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6252 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306253 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6254 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306255 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6256 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306257 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6258 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306259 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6260 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306261 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6262 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05306263 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6264 msm_routing_put_audio_mixer),
6265};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306266static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306267 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306269 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306271 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306273 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306275 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306277 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306279 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306281 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306283 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306285 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306287 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306289 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306291 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6292 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306293 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6294 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306295 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6296 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306297 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6298 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306299 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6300 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306301 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6302 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306303 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6304 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306305 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6306 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306307 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6308 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306309 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6310 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306311 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6312 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306313 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6314 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306315 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6316 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306317 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6318 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306319 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6320 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306321 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6322 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306323 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6324 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306325 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6326 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306327 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6328 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306329 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6330 msm_routing_put_audio_mixer),
6331};
6332
6333static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306334 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306336 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306338 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306340 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306342 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306344 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306346 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306348 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306350 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306352 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306354 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306356 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306358 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306360 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306362 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306364 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306366 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6367 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306368 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6369 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306370 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6371 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306372 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6373 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306374 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6375 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306376 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6377 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306378 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6379 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306380 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6381 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306382 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6383 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306384 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6385 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306386 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6387 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306388 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6389 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306390 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6391 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306392 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6393 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306394 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6395 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306396 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6397 msm_routing_put_audio_mixer),
6398};
6399
6400static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306401 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306403 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306405 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306407 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306409 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306411 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306413 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306415 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306417 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306419 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306421 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306423 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306425 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306427 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306429 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306431 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306433 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306435 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306437 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6438 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306439 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6440 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306441 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6442 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306443 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6444 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306445 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6446 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306447 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6448 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306449 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6450 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306451 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6452 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306453 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6454 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306455 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6456 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306457 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6458 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306459 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6460 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306461 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6462 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306463 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6464 msm_routing_put_audio_mixer),
6465};
6466
6467static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306468 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306470 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306472 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306474 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306476 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306478 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306480 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306482 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306484 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306486 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306488 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306490 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306492 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306494 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306496 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306498 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306500 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6501 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306502 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6503 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306504 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6505 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306506 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6507 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306508 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6509 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306510 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6511 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306512 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6513 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306514 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6515 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306516 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6517 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306518 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6519 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306520 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6521 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306522 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6523 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306524 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6525 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306526 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6527 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306528 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6529 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306530 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6531 msm_routing_put_audio_mixer),
6532};
6533
6534static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306535 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306539 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6540 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306541 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6542 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306543 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6544 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306545 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6546 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306547 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6548 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306549 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6550 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306551 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6552 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306553 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6554 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306555 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6556 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306557 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6558 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306559 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306561 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306563 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306565 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306567 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306569 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306571 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6572 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306573 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6574 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306575 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6576 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306577 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6578 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306579 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6580 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306581 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6582 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306583 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6584 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306585 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6586 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306587 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6588 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306589 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6590 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306591 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6592 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306593 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6594 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306595 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6596 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306597 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6598 msm_routing_put_audio_mixer),
6599};
6600
6601static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306602 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6603 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306604 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6605 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306606 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6607 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306608 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6609 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306610 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6611 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306612 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6613 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306614 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6615 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306616 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6617 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306618 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6619 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306620 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6621 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306622 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6623 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306624 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6625 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306626 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6627 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306628 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6629 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306630 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306632 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306634 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6635 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306636 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6637 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306638 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306640 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306642 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306644 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306646 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306648 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306650 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6651 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306652 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6653 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306654 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6655 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306656 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6657 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306658 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6659 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306660 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6661 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306662 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6663 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306664 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6665 msm_routing_put_audio_mixer),
6666};
6667
6668static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306669 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6670 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306671 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6672 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306673 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6674 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306675 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6676 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306677 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6678 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306679 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6680 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306681 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6682 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306683 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6684 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306685 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6686 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6688 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306689 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6690 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306691 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6692 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306693 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6694 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306695 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6696 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306697 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6698 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306699 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6700 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306701 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6702 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306703 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6704 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306705 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6706 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306707 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6708 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306709 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6710 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306711 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6712 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306713 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6714 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306715 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6716 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306717 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6718 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306719 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6720 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306721 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6722 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306723 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6724 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306725 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6726 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306727 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6728 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306729 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6730 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306731 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6732 msm_routing_put_audio_mixer),
6733};
6734
6735static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306736 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6737 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306738 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6739 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306740 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6741 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306742 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6743 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306744 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6745 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306746 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6747 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306748 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6749 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306750 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6751 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306752 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6753 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306754 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6755 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306756 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6757 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306758 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6759 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306760 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6761 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306762 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6763 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306764 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6765 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306766 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6767 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306768 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6769 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306770 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6771 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306772 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6773 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306774 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6775 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306776 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6777 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306778 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6779 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306780 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6781 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306782 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6783 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306784 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6785 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306786 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6787 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306788 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6789 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306790 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6791 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306792 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6793 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306794 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6795 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306796 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6797 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306798 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6799 msm_routing_put_audio_mixer),
6800};
6801
6802static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306803 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6804 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306805 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6806 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306807 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6808 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306809 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6810 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306811 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6812 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306813 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6814 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306815 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6816 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306817 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6818 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306819 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6820 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306821 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6822 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306823 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6824 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306825 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6826 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306827 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6828 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306829 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6830 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306831 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6832 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306833 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6834 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306835 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6836 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306837 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6838 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306839 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6840 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306841 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6842 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306843 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6844 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306845 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6846 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306847 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6848 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306849 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6850 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306851 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6852 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306853 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6854 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306855 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6856 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306857 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6858 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306859 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6860 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306861 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6862 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306863 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6864 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306865 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6866 msm_routing_put_audio_mixer),
6867};
6868
6869static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306870 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6871 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306872 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6873 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306874 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6875 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306876 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6877 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306878 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6879 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306880 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6881 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306882 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6883 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306884 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6885 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306886 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6887 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306888 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6889 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306890 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6891 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306892 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6893 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306894 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6895 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306896 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6897 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306898 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6899 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306900 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6901 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306902 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6903 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306904 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6905 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306906 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6907 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306908 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6909 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306910 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6911 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306912 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6913 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306914 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6915 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306916 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6917 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306918 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6919 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306920 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6921 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306922 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6923 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306924 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6925 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306926 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6927 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306928 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6929 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306930 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6931 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306932 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6933 msm_routing_put_audio_mixer),
6934};
6935
6936static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05306937 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6938 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306939 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6940 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306941 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6942 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306943 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6944 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306945 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6946 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306947 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6948 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306949 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6950 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306951 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6952 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306953 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6954 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306955 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6956 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306957 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6958 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6960 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306961 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6962 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306963 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6964 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306965 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6966 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306967 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6968 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306969 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6970 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306971 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6972 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306973 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6974 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306975 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6976 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306977 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6978 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306979 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6980 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306981 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6982 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306983 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6984 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306985 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6986 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306987 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6988 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306989 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6990 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306991 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6992 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306993 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6994 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306995 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6996 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05306997 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6998 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306999 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7000 msm_routing_put_audio_mixer),
7001};
7002
7003static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307004 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7005 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307006 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7007 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307008 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7009 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7011 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307012 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7013 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307014 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7015 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307016 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7017 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307018 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7019 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307020 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7021 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307022 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7023 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307024 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7025 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307026 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7027 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307028 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7029 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307030 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7031 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307032 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7033 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307034 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7035 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307036 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7037 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307038 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7039 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307040 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7041 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307042 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7043 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307044 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7045 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307046 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7047 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307048 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7049 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7051 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307052 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7053 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307054 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7055 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307056 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307058 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307060 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307062 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307064 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7065 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307066 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7067 msm_routing_put_audio_mixer),
7068};
7069
7070static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307071 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7072 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307073 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7074 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307075 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7076 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7078 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307079 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7080 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307081 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7082 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307083 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7084 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307085 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7086 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307087 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7088 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307089 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7090 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307091 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7092 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307093 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307095 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7096 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307097 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7098 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307099 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307103 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307107 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307111 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7112 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307113 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7114 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307115 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7116 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307117 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7118 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307119 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7120 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307121 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7122 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307123 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307127 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307131 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
7135};
7136
7137static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307138 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7139 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307140 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7141 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307142 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7143 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307144 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7145 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307146 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7147 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307148 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7149 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307150 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7151 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307152 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7153 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307154 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7155 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307156 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7157 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307158 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7159 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307160 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7161 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307162 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307166 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307168 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307170 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307174 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307176 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307178 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7179 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307180 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7181 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307182 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7183 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307184 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7185 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307186 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7187 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307188 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7189 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307190 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307192 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307194 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307196 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307198 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307200 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
7202};
7203
7204static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307205 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7206 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7208 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307209 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7210 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307211 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7212 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307213 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7214 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307215 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7216 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307217 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7218 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307219 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7220 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307221 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7222 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307223 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7224 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307225 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7226 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307227 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7228 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307229 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7230 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307231 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7232 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307233 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7234 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307235 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7236 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307237 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7238 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307239 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7240 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307241 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7242 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307243 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7244 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307245 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7246 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307247 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7248 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307249 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7250 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307251 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7252 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307253 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7254 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307255 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7256 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307257 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307259 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307261 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7262 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307263 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7264 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307265 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7266 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7268 msm_routing_put_audio_mixer),
7269};
7270
7271static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307272 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7273 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307274 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7275 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307276 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7277 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307278 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7279 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307280 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7281 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307282 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7283 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307284 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7285 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307286 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7287 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307288 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7289 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307290 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7291 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307292 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7293 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307294 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7295 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307296 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7297 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307298 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7299 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307300 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7301 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307302 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7303 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307304 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7305 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307306 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7307 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307308 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7309 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307310 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7311 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307312 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7313 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307314 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7315 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307316 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7317 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307318 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7319 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307320 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7321 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307322 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7323 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307324 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7325 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307326 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7327 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307328 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7329 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307330 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7331 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307332 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7333 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307334 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7335 msm_routing_put_audio_mixer),
7336};
7337
7338static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307339 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7340 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307341 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7342 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307343 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7344 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307345 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7346 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307347 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7348 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307349 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7350 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307351 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7352 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307353 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7354 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307355 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7356 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307357 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7358 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307359 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7360 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307361 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7362 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307363 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7364 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307365 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7366 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307367 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7368 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307369 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7370 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307371 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7372 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307373 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7374 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307375 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7376 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307377 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7378 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307379 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7380 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307381 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7382 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307383 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7384 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307385 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7386 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307387 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7388 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307389 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7390 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307391 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7392 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307393 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7394 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307395 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7396 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307397 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7398 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307399 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307401 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307403 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7404 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307405 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7406 msm_routing_put_audio_mixer),
7407};
7408
7409static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307410 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7411 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307412 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7413 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307414 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7415 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307416 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7417 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307418 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7419 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307420 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7421 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307422 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7423 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307424 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7425 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307426 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7427 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307428 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7429 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307430 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7431 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307432 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7433 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307434 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7435 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307436 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7437 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307438 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7439 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307440 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7441 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307442 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7443 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307444 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7445 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307446 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7447 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307448 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7449 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307450 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7451 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307452 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7453 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307454 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7455 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307456 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7457 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307458 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7459 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307460 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7461 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307462 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7463 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307464 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7465 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307466 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7467 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307468 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7469 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307470 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7471 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307472 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7473 msm_routing_put_audio_mixer),
7474};
7475
7476static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307477 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307481 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307485 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307489 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307493 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307497 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307501 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307503 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307505 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7506 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307507 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7508 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307509 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7510 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307511 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7512 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307513 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7514 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307515 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7516 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307517 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7518 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307519 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7520 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307521 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7522 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307523 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7524 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307525 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7526 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307527 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7528 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307529 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7530 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307531 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7532 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307533 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7534 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307535 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7536 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307537 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7538 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307539 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7540 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307541 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7542 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307543 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7544 msm_routing_put_audio_mixer),
7545};
7546
7547static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307548 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307552 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307554 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307556 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307558 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307560 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307562 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307564 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307568 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307570 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307572 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307574 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307576 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307578 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307580 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307582 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307584 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7585 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307586 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7587 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307588 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7589 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307590 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7591 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307592 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7593 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307594 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7595 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307596 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7597 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307598 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7599 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307600 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7601 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307602 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7603 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307604 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7605 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307606 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7607 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307608 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7609 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307610 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7611 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307612 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7613 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307614 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7615 msm_routing_put_audio_mixer),
7616};
7617
7618static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307619 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307621 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307623 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307625 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307627 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307631 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307635 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307637 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307639 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307641 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307643 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307647 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307651 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7652 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307653 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7654 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307655 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7656 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307657 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7658 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307659 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7660 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307661 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7662 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307663 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7664 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307665 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7666 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307667 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7668 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307669 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7670 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307671 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7672 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307673 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7674 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307675 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7676 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307677 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7678 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307679 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7680 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307681 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7682 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307683 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7684 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307685 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7686 msm_routing_put_audio_mixer),
7687};
7688
Rohit Kumara5077932017-09-10 22:05:05 +05307689static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307690 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7691 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307692 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7693 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307694 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7695 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7697 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307698 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7699 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307700 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7701 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307702 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7703 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307704 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7705 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307706 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7707 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307708 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7709 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307710 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7711 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307712 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7713 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307714 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7715 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307716 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7717 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307718 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7719 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307720 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7721 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307722 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7723 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307724 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7725 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307726 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7727 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307728 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7729 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307730 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7731 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307732 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7733 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307734 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307736 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307738 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307740 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307742 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307744 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307746 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307748 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307750 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7751 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307752 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7753 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307754 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7755 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307756 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7757 msm_routing_put_audio_mixer),
7758};
7759
7760static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307761 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7762 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307763 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7764 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307765 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7766 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307767 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7768 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307769 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7770 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307771 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7772 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307773 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7774 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307775 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7776 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307777 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7778 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307779 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7780 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307781 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7782 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307783 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7784 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307785 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7786 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307787 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7788 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307789 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7790 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307791 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7792 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307793 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7794 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307795 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7796 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307797 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7798 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307799 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7800 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307801 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7802 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307803 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7804 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307805 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307807 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307809 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307811 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307813 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307815 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307817 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7818 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307819 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7820 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307821 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7822 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05307823 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7824 msm_routing_put_audio_mixer),
7825};
7826
7827static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307828 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7829 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307830 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7831 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307832 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7833 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307834 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7835 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307836 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7837 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307838 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7839 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307840 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7841 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307842 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7843 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307844 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7845 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307846 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7847 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307848 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7849 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7851 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307852 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7853 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307854 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7855 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307856 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7857 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307858 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7859 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307860 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7861 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307862 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7863 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307864 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7865 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307866 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7867 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307868 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7869 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307870 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7871 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307872 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7873 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307874 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7875 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307876 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7877 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307878 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7879 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307880 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7881 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307882 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7883 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307884 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7885 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307886 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7887 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307888 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7889 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307890 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7891 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307892 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7893 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05307894 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7895 msm_routing_put_audio_mixer),
7896};
7897
7898static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307899 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7900 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307901 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7902 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307903 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7904 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307905 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7906 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307907 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7908 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307909 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7910 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307911 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7912 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307913 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7914 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307915 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7916 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307917 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7918 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307919 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7920 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307921 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7922 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307923 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7924 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307925 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7926 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307927 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7928 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307929 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7930 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307931 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7932 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307933 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7934 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307935 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7936 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307937 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7938 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307939 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7940 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307941 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7942 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307943 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7944 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307945 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7946 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307947 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7948 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307949 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7950 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307951 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7952 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307953 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7954 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307955 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7956 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307957 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7958 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307959 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7960 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307961 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7962 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307963 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
7964 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05307965 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
7966 msm_routing_put_audio_mixer),
7967};
7968
7969static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05307970 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7971 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307972 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7973 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307974 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7975 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307976 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7977 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307978 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7979 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307980 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7981 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307982 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7983 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307984 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7985 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307986 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7987 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307988 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7989 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307990 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7991 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307992 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7993 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307994 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7995 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05307996 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7997 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05307998 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7999 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308000 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8001 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308002 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8003 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308004 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8005 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308006 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8007 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308008 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8009 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308010 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8011 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308012 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8013 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308014 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8015 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308016 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8017 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308018 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8019 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308020 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8021 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308022 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8023 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308024 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8025 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308026 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8027 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308028 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8029 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308030 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8031 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308032 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8033 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308034 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8035 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308036 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8037 msm_routing_put_audio_mixer),
8038};
8039
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308040static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308041 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
8042 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308043 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8044 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308045 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8046 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308047 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8048 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308049 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8050 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308051 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8052 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308053 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8054 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308055 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8056 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308057 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8058 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308059 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8060 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308061 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8062 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308063 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8064 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308065 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8066 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308067 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8068 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308069 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8070 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308071 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8072 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308073 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8074 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308075 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8076 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308077 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8078 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308079 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8080 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308081 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
8082 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308083 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8084 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308085 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308089 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
8090 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308091 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8092 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308093 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
8094 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308095 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8096 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308097 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8098 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308099 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8100 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308101 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8102 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308103 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8104 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308105 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8106 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308107 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8108 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308109 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8110 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308111 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8112 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308113 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8114 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308115 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8116 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308117 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
8118 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308119 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8120 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308121 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8122 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308123 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8124 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308125 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8126 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308127 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8128 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308129 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8130 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308131 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8132 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308133 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8134 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308135 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8136 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308137 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8138 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308139 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8140 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308141 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8142 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8144 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308145 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8146 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308147 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8148 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308149 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8150 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308151 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8152 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308153 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8154 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308155 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8156 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308157 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8158 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308159 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8160 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308161 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8162 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308163 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8164 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308165 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8166 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308167 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8168 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308169 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8170 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308171 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8172 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308173 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8174 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308175 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8176 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308177 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8178 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8180 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308181 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8182 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308183 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8184 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308185 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8186 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308187 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8188 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308189 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8190 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308191 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8192 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308193 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8194 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308195 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8196 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308197 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8198 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308199 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8200 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308201 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8202 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308203 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8204 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308205 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8206 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308207 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8208 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308209 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8210 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308211 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8212 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308213 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
8214 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8216 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308217 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8218 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308219 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8220 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308221 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8222 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308223 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8224 msm_routing_put_audio_mixer),
8225};
8226
8227static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308228 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8229 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308230 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8231 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308232 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8233 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308234 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8235 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308236 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8237 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308238 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8239 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308240 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8241 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308242 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8243 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308244 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8245 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308246 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8247 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308248 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8249 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308250 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8251 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308252 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8253 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308254 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8255 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308256 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8257 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308258 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8259 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308260 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8261 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308262 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8263 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308264 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
8265 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308266 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8267 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308268 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
8269 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308270 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8271 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308272 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8273 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308274 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8275 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308276 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8277 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308278 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8279 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308280 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8281 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308282 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8283 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308284 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8285 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308286 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8287 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308288 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8289 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308290 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8291 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308292 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8293 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308294 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8295 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308296 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8297 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308298 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8299 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308300 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8301 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308302 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8303 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308304 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8305 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308306 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8307 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308308 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8309 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308310 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8311 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308312 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8313 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308314 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8315 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308316 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8317 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308318 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8319 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308320 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8321 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308322 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8323 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308324 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8325 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308326 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8327 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308328 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8329 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308330 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8331 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308332 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8333 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8335 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308336 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8337 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308338 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8339 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308340 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8341 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308342 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8343 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308344 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8345 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308346 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8347 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308348 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8349 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308350 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8351 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308352 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8353 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308354 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8355 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308356 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8357 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308358 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8359 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308360 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8361 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308362 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8363 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308364 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8365 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308366 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8367 msm_routing_put_audio_mixer),
8368};
8369
8370static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308371 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8372 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308373 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8374 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308375 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8376 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8378 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308379 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8380 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308381 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8382 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308383 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8384 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308385 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8386 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308387 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8388 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308389 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8390 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308391 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
8392 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308393 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8394 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308395 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8396 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308397 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8398 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308399 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8400 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308401 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8402 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308403 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8404 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308405 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8406 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308407 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8408 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308409 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8410 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308411 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8412 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308413 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8414 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308415 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8416 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308417 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8418 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308419 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8420 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308421 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8422 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308423 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8424 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308425 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8426 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308427 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8428 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308429 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8430 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308431 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8432 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308433 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8434 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308435 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8436 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308437 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8438 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308439 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8440 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308441 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8442 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308443 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8444 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308445 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8446 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308447 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8448 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308449 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8450 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308451 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308453 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308455 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8456 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308457 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8458 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308459 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8460 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308461 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8462 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308463 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8464 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308465 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8466 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308467 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8468 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308469 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8470 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308471 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8472 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308473 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8474 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308475 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8476 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308477 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8478 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308479 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8480 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308481 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8482 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308483 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8484 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308485 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8486 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308487 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8488 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308489 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8490 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308491 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8492 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308493 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8494 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308495 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8496 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308497 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8498 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308499 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8500 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308501 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8502 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308503 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8504 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308505 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8506 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308507 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308511};
8512
8513static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308514 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8515 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308516 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8517 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308518 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8519 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308520 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8521 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308522 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308524 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308526 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8527 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308528 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8529 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308530 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8531 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308532 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8533 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308534 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
8535 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8537 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308538 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
8539 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308540 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8541 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308542 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8543 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308544 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8545 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308546 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8547 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308548 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8549 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308550 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8551 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308552 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8553 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308554 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8555 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308556 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8557 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308558 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8559 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308560 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8561 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308562 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8563 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308564 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8565 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308566 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8567 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308568 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8569 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308570 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8571 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308572 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8573 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308574 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8575 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8577 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308578 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8579 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8581 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308582 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8583 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308584 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8585 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308586 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8587 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308588 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8589 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308590 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8591 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308592 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8593 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308594 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8595 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308596 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8597 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308598 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8599 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308600 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8601 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308602 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8603 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308604 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8605 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308606 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8607 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308608 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8609 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308610 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8611 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308612 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8613 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308614 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8615 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308616 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8617 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308618 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8619 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308620 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8621 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308622 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8623 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308624 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8625 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308626 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8627 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308628 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8629 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308630 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8631 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308632 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8633 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308634 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8635 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308636 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8637 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308638 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8639 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308640 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8641 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308642 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8643 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308644 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8645 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308646 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8647 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308648 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8649 msm_routing_put_audio_mixer),
8650};
8651
8652static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308653 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8654 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308655 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8656 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308657 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8658 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308659 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8660 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308661 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
8662 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308663 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8664 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308665 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8666 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308667 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8668 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308669 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8670 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308671 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8672 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308673 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8674 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308675 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8676 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308677 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
8678 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308679 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8680 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308681 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
8682 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8684 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308685 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
8686 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308687 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8688 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308689 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
8690 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308691 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8692 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308693 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8694 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308695 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8696 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308697 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8698 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308699 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8700 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308701 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8702 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308703 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8704 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308705 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8706 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308707 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8708 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308709 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8710 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308711 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8712 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308713 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8714 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308715 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8716 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308717 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8718 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308719 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8720 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308721 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8722 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308723 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8724 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308725 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8726 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308727 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8728 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308729 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8730 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308731 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8732 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308733 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8734 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308735 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8736 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308737 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8738 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308739 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8740 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308741 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8742 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308743 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8744 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308745 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8746 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308747 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8748 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308749 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8750 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308751 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8752 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308753 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8754 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308755 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8756 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308757 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8758 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308759 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8760 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308761 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8762 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308763 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8764 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308765 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8766 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308767 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8768 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308769 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8770 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308771 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8772 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308773 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8774 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308775 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8776 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308777 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8778 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308779 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8780 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308781 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8782 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308783 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8784 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308785 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8786 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308787 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8788 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308789 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8790 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308791 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8792 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308793 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8794 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308795 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8796 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308797 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8798 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308799 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8800 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308801 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
8802 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308803 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8804 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308805 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
8806 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8808 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308809 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8810 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308811 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8812 msm_routing_put_audio_mixer),
8813};
8814
8815static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308816 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8817 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308818 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8819 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308820 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8821 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308822 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8823 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308824 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8825 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308826 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8827 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308828 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8829 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308830 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8831 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308832 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8833 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308834 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8835 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308836 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8837 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308838 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8839 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308840 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8841 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8843 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308844 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8845 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308846 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8847 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308848 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
8849 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05308850 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8851 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308852 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
8853 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308854 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8855 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308856 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
8857 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308858 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8859 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308860 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
8861 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308862 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8863 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308864 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
8865 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308866 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8867 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308868 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
8869 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308870 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8871 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308872 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
8873 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308874 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8875 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308876 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
8877 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308878 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8879 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308880 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
8881 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308882 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8883 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308884 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
8885 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308886 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8887 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308888 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
8889 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308890 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8891 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308892 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
8893 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8895 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308896 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
8897 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308898 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8899 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308900 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
8901 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308902 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8903 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308904 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
8905 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308906 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8907 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308908 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
8909 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308910 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8911 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308912 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
8913 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308914 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8915 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308916 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
8917 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308918 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8919 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308920 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
8921 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308922 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8923 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308924 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
8925 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308926 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8927 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308928 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
8929 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308930 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8931 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308932 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
8933 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308934 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8935 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308936 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
8937 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05308938 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8939 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308940 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
8941 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05308942 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8943 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308944 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
8945 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05308946 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8947 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308948 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
8949 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05308950 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8951 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308952 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
8953 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308954 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8955 msm_routing_put_audio_mixer),
8956};
8957
8958static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05308959 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
8960 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308961 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8962 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308963 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
8964 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308965 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8966 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308967 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
8968 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308969 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8970 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308971 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
8972 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8974 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308975 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
8976 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308977 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8978 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308979 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
8980 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308981 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8982 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308983 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
8984 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308985 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8986 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308987 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
8988 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308989 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8990 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308991 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
8992 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308993 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8994 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308995 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
8996 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308997 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8998 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05308999 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9000 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309001 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9002 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309003 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9004 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309005 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9006 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309007 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9008 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309009 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9010 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309011 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9012 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309013 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9014 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309015 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9016 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309017 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9018 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309019 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9020 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309021 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9022 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309023 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9024 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309025 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9026 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309027 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9028 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309029 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9030 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309031 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9032 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309033 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9034 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309035 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9036 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309037 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9038 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309039 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9040 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309041 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9042 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309043 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9044 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309045 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9046 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309047 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9048 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309049 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9050 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309051 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9052 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309053 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9054 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309055 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9056 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309057 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9058 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309059 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9060 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309061 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9062 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309063 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9064 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9066 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309067 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9068 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309069 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9070 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309071 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9072 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309073 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9074 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309075 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9076 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309077 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9078 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309079 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9080 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309081 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9082 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309083 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9084 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309085 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9086 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309087 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9088 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309089 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9090 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309091 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9092 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309093 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9094 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309095 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9096 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9098 msm_routing_put_audio_mixer),
9099};
9100
Asish Bhattacharya34504582017-08-08 12:55:01 +05309101static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309102 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309106 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9107 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309108 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9109 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309110 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9111 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309112 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9113 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309114 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9115 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309116 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9117 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309118 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9119 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309120 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9121 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309122 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9123 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309124 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9125 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309126 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309128 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309130 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9131 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309132 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9133 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309134 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9135 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309136 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9137 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309138 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9139 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309140 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9141 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309142 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9143 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309144 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9145 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309146 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9147 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309148 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9149 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309150 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9151 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309152 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9153 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309154 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9155 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309156 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9157 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309158 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9159 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309160 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9161 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309162 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9163 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309164 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9165 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309166 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9167 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309168 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9169 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309170 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9171 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309172 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9173 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309174 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9175 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309176 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9177 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309178 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9179 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309180 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9181 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309182 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9183 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9185 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309186 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9187 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309188 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9189 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309190 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9191 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309192 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9193 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309194 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9195 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309196 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9197 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309198 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9199 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309200 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9201 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309202 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9203 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309204 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9205 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309206 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9207 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309208 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9209 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309210 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9211 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309212 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9213 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309214 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9215 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309216 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9217 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309218 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9219 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Raja Mallik425e1d32018-05-20 19:21:10 +05309220 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9221 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309222 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9223 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9225 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309226 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9227 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309228 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9229 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309230 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9231 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309232 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9233 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309234 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9235 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309236 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9237 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309238 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9239 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309240 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9241 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309242 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9243 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +05309244 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9245 msm_routing_put_audio_mixer),
9246};
9247
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309248static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309249 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9250 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309251 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9252 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309253 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9254 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309255 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9256 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309257 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9258 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309259 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9260 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309261 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9262 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309263 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9264 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309265 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9266 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309267 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9268 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309269 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9270 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309271 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9272 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309273 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9274 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309275 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9276 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309277 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9278 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309279 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9280 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309281 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9282 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309283 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9284 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309285 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9286 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309287 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9288 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309289 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9290 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309291 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9292 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309293 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9294 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309295 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9296 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309297 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9298 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309299 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9300 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309301 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9302 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309303 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9304 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309305 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9306 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309307 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9308 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309309 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9310 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309311 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9312 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309313 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9314 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309315 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9316 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309317 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9318 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309319 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9320 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309321 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9322 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309323 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9324 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309325 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9326 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309327 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9328 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309329 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9330 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Sachin Mohan Gadagd1b8fbc2018-07-20 15:50:17 +05309331 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9332 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333};
9334
Laxminath Kasam38070be2017-08-17 18:21:59 +05309335static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309336 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9337 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309338 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9339 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309340 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9341 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309342 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9343 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309344 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9345 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309346 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9347 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309348 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9349 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309350 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9351 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309352 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9353 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309354 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9355 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309356 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9357 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309358 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9359 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309360 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9361 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309362 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9363 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309364 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9365 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9367 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309368 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9369 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -07009370 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9371 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309372 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9373 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309374 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9375 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309376 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9377 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309378 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9379 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309380 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9381 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309382 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9383 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309384 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9385 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309386 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9387 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309388 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9389 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309390 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9391 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309392 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9393 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309394 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9395 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309396 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9397 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309398 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9399 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309400 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9401 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309402 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9403 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309404 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9405 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +05309406 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9407 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309408 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9409 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009410 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9411 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309412 SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
9413 MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009414 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9415 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309416 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9417 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009418 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9419 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309420 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9421 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009422 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9423 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309424 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9425 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009426 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9427 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309428 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9429 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009430 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9431 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309432 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9433 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009434 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9435 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309436 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9437 MSM_BACKEND_DAI_INT2_MI2S_TX,
9438 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9439 msm_routing_put_audio_mixer),
9440 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9441 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -07009442 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9443 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +05309444};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309445static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309446 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9447 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309448 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9449 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309450 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9451 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309452 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9453 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309454 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9455 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309456 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9457 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309458 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9459 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309460 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9461 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309462 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9463 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309464 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9465 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309466 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9467 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309468 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9469 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309470 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9471 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309472 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9473 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309474 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9475 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309476 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9477 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009478 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9479 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9480 msm_routing_put_audio_mixer),
9481 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9482 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
9483 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309484};
9485
9486static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309487 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9488 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309489 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9490 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309491 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309495 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309499 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009501 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309503 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309507 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309509 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309511 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309513 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309515 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309517 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309519 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309521 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309523 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309525 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
9527};
9528
9529static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309530 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9531 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309532 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9533 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309534 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9535 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309536 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9537 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309538 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9539 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309540 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9541 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309542 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9543 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309544 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9545 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309546 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9547 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309548 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9549 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309550 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9551 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309552 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9553 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309554 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9555 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309556 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9557 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309558 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9559 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309560 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9561 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009562 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9563 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9564 msm_routing_put_audio_mixer),
9565 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9566 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
9567 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309568};
9569
9570static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309571 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9572 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309573 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9574 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309575 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9576 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309577 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9578 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309579 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9580 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309581 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9582 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309583 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9584 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309585 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9586 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309587 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9588 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309589 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9590 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309591 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9592 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309593 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9594 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309595 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9596 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309597 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9598 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309599 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9600 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309601 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9602 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309603 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9604 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309605 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9606 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309607 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9608 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309609 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9610 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309611 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9612 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309613 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9614 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309615 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9616 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309617 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9618 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309619 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9620 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309621 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9622 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309623 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9624 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309625 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9626 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309627 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9628 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309629 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9630 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309631 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9632 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309633 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9634 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309635 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9636 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309637 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9638 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309639 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9640 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309641 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9642 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309643 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9644 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309645 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9646 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309647 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9648 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309649 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9650 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309651 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9652 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309653 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9654 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309655 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9656 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309657 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9658 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309659 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9660 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309661 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9662 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309663 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9664 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309665 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9666 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309667 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9668 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309669 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9670 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309671};
9672
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309673static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309674 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309676 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309678 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9679 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309680 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9681 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309682 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309686 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309690 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309694 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309698 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309702 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309704 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
Meng Wangbe8194e2018-04-25 10:40:01 +08009706 SOC_SINGLE_EXT("TERT_MI2S_TX", MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
9707 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9708 msm_routing_put_audio_mixer),
9709 SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
9710 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
9711 msm_routing_put_audio_mixer),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309712};
9713
9714static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309715 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9716 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309717 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9718 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309719 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9720 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309721 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9722 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309723 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9724 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309725 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9726 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309727 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9728 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309729 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9730 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309731 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9732 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309733 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9734 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309735 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9736 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309737 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9738 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309739 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9740 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309741 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9742 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309743 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9744 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309745 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9746 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309747 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9748 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009749 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9750 msm_routing_put_audio_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309751 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9752 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Meng Wangbe8194e2018-04-25 10:40:01 +08009753 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
9754 msm_routing_put_audio_mixer),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +05309755};
9756
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309757static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309758 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9759 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309760 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9761 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309762 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9763 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309764 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9765 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309766 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9767 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309768 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9769 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309770 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9771 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309772 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9773 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309774 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9775 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309776 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9777 msm_routing_put_voice_mixer),
9778};
9779
9780static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309781 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309783 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9784 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309785 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309787 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9788 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309789 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309791 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9792 msm_routing_put_voice_mixer),
9793};
9794
9795static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309796 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9797 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309798 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9799 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309800 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9801 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309802 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9803 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309804 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9805 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309806 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9807 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309808 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9809 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309810 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9811 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309812 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9813 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309814 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9815 msm_routing_put_voice_mixer),
9816};
9817
9818static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309819 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9820 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309821 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9822 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309823 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9824 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309825 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9826 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309827 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9828 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309829 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9830 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309831 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9832 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309833 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9834 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309835 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9836 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309837 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9838 msm_routing_put_voice_mixer),
9839};
9840
9841static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309842 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9843 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309844 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9845 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309846 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9847 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309848 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9849 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309850 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9851 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309852 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9853 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309854 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9855 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309856 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9857 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309858 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9859 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309860 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9861 msm_routing_put_voice_mixer),
9862};
9863
9864static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309865 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9866 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309867 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9868 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309869 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9872 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309873 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9876 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309877 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9880 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309881 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309883 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9884 msm_routing_put_voice_mixer),
9885};
9886
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009887static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309888 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9889MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009890 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9891 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309892 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9893MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009894 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9895 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309896 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9897MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009898 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9899 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309900 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9901MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009902 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9903 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309904 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9905MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08009906 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9907 msm_routing_put_voice_mixer),
9908};
9909
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309910static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309911 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9912 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309913 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9914 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309915 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9916 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309917 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9918 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309919 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9920 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309921 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9922 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309923 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9924 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309925 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9926 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309927 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9928 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309929 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9930 msm_routing_put_voice_mixer),
9931};
9932
9933static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309934 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9935 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309936 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9937 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309938 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9939 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309940 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9941 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309942 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9943 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309944 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9945 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309946 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9947 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309948 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9949 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309950 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9951 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309952 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9953 msm_routing_put_voice_mixer),
9954};
9955
9956static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309957 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9958MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309959 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9960 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309961 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9962MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309963 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9964 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309965 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9966MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309967 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9968 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309969 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9970MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309971 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9972 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309973 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9974MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309975 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9976 msm_routing_put_voice_mixer),
9977};
9978
9979static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +05309980 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
9981MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309982 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
9983 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309984 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
9985MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309986 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
9987 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309988 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
9989MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309990 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
9991 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309992 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
9993MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309994 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
9995 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +05309996 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
9997MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309998 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
9999 msm_routing_put_voice_mixer),
10000};
10001
10002static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010003 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10004 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010005 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10006 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010007 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10008 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010009 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10010 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010011 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10012 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010013 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10014 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010015 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10016 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010017 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10018 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010019 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10020 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010021 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10022 msm_routing_put_voice_mixer),
10023};
10024
10025static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010026 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10027 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010028 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10029 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010030 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10031 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010032 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10033 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010034 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10035 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010036 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10037 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010038 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10039 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010040 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10041 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010042 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10043 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010044 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10045 msm_routing_put_voice_mixer),
10046};
10047
10048static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010049 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10050 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010051 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10052 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010053 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10054 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010055 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10056 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010057 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10058 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010059 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10060 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010061 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10062 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010063 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10064 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010065 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10066 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010067 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10068 msm_routing_put_voice_mixer),
10069};
10070
10071static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010072 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10075 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010076 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10079 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010080 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10083 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010084 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010086 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10087 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010088 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010090 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10091 msm_routing_put_voice_mixer),
10092};
10093
10094static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010095 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10096 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010097 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10098 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010099 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10100 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010101 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10102 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010103 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10104 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010105 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10106 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010107 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10108 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010109 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10110 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010111 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10112 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010113 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10114 msm_routing_put_voice_mixer),
10115};
10116
10117static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010118 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10119 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010120 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10121 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010122 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10123 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010124 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10125 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010126 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10127 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010128 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10129 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010130 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10131 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010132 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10133 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010134 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10135 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010136 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10137 msm_routing_put_voice_mixer),
10138};
10139
10140static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010141 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10142MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010143 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10144 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010145 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10146MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010147 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10148 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010149 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10150MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010151 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10152 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010153 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10154MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010155 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10156 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010157 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10158MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010159 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10160 msm_routing_put_voice_mixer),
10161};
10162
10163static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010164 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10165MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010166 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10167 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010168 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10169MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010170 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10171 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010172 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10173MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010174 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10175 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010176 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10177MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010178 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10179 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010180 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10181MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010182 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10183 msm_routing_put_voice_mixer),
10184};
10185
10186static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010187 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10188MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10190 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010191 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10192MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10194 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010195 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10196MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010197 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10198 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010199 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10200MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010201 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10202 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010203 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10204MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010205 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10206 msm_routing_put_voice_mixer),
10207};
10208
Rohit Kumara5077932017-09-10 22:05:05 +053010209static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010210 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10211MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010212 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10213 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010214 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10215MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010216 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10217 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010218 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10219MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010220 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10221 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010222 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10223MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010224 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10225 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010226 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10227MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010228 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10229 msm_routing_put_voice_mixer),
10230};
10231
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010232static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010233 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10234 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010235 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10236 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010237 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10238 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010239 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10240 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010241 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10242 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010243 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10244 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010245 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10246 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010247 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10248 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010249 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10250 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010251 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10252 msm_routing_put_voice_mixer),
10253};
10254
Raja Mallik321d5712018-05-04 17:22:11 +053010255static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = {
10256 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10257 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10258 msm_routing_put_voice_mixer),
10259 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10260 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10261 msm_routing_put_voice_stub_mixer),
10262 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10263 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10264 msm_routing_put_voice_stub_mixer),
10265 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10266 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10267 msm_routing_put_voice_mixer),
10268 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10269 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10270 msm_routing_put_voice_mixer),
10271 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10272 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10273 msm_routing_put_voice_mixer),
10274 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10275 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10276 msm_routing_put_voice_mixer),
10277 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_0,
10278 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10279 msm_routing_put_voice_mixer),
10280};
10281
10282static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = {
10283 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10284 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10285 msm_routing_put_voice_mixer),
10286 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10287 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10288 msm_routing_put_voice_stub_mixer),
10289 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10290 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10291 msm_routing_put_voice_stub_mixer),
10292 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10293 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10294 msm_routing_put_voice_mixer),
10295 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10296 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10297 msm_routing_put_voice_mixer),
10298 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10299 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10300 msm_routing_put_voice_mixer),
10301 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10302 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10303 msm_routing_put_voice_mixer),
10304 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_1,
10305 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10306 msm_routing_put_voice_mixer),
10307};
10308
10309static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = {
10310 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10311 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10312 msm_routing_put_voice_mixer),
10313 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10314 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10315 msm_routing_put_voice_stub_mixer),
10316 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10317 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10318 msm_routing_put_voice_stub_mixer),
10319 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10320 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10321 msm_routing_put_voice_mixer),
10322 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10323 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10324 msm_routing_put_voice_mixer),
10325 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10326 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10327 msm_routing_put_voice_mixer),
10328 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10329 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10330 msm_routing_put_voice_mixer),
10331 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_2,
10332 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10333 msm_routing_put_voice_mixer),
10334};
10335
10336static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = {
10337 SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10338 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10339 msm_routing_put_voice_mixer),
10340 SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10341 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10342 msm_routing_put_voice_stub_mixer),
10343 SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10344 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10345 msm_routing_put_voice_stub_mixer),
10346 SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10347 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer,
10348 msm_routing_put_voice_mixer),
10349 SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10350 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10351 msm_routing_put_voice_mixer),
10352 SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10353 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10354 msm_routing_put_voice_mixer),
10355 SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10356 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10357 msm_routing_put_voice_mixer),
10358 SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_PRI_TDM_RX_3,
10359 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10360 msm_routing_put_voice_mixer),
10361};
10362
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010363static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010364 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10365MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010366 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10367 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010368 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10369MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010370 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10371 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010372 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10373MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010374 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10375 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010376 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10377MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010378 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10379 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010380 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10381MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010382 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10383 msm_routing_put_voice_mixer),
10384};
10385
10386static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010387 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
10388 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010389 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10390 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010391 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
10392 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010393 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
10394 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010395 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
10396 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010397 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10398 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010399 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10400 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010401 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10402 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010403 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10404 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010405 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10406 msm_routing_put_voice_mixer),
10407};
10408
10409static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010410 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010412 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10413 msm_routing_put_voice_mixer),
10414};
10415
10416static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010417 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10418 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010419 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10420 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010421 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10422 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010423 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10424 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010425};
10426
10427static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010428 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10429 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010430 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10431 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010432 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
10433 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080010434 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10435 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010436};
10437
10438static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010439 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
10440 MSM_BACKEND_DAI_SLIMBUS_3_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_SLIMBUS_3_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
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010449static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010450 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010452 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("MI2S_TX_MMode1", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010456 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10457 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010458 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010459 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10460 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010461 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010462 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10463 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010464 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010465 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10466 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010467 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10469 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010470 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010471 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10472 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010473 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010474 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10475 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010476 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010477 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10478 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010479 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053010480 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10481 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010482 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010483 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10484 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010485 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010486 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10487 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010488 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010489 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10490 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010491 SOC_DOUBLE_EXT("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010492 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10493 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010494 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010495 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
10496 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010497 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
10498 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010499 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
10500 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010501 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010502 MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
10503 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010504 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode1", SND_SOC_NOPM,
Raja Mallik321d5712018-05-04 17:22:11 +053010505 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1,
10506 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010507 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode1", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010508 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
10509 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010510 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010511 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
10512 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010513};
10514
10515static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010516 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
10517 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010518 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10519 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010520 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
10521 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010522 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
10523 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010524 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010525 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10526 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010527 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010528 MSM_BACKEND_DAI_INT_BT_SCO_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10529 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010530 SOC_DOUBLE_EXT("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010531 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10532 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010533 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010534 MSM_BACKEND_DAI_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10535 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010536 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010537 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10538 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010539 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010540 MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10541 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010542 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010543 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10544 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010545 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053010546 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10547 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010548 SOC_DOUBLE_EXT("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010549 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10550 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010551 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010552 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10553 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010554 SOC_DOUBLE_EXT("PRI_TDM_TX_3_MMode2", SND_SOC_NOPM,
Raja Mallik321d5712018-05-04 17:22:11 +053010555 MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE2,
10556 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010557 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010558 MSM_BACKEND_DAI_INT3_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10559 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010560 SOC_DOUBLE_EXT("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010561 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10562 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010563 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010564 MSM_BACKEND_DAI_SLIMBUS_8_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10565 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010566 SOC_DOUBLE_EXT("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010567 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
10568 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010569 SOC_DOUBLE_EXT("QUAT_MI2S_TX_MMode2", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010570 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
10571 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010572 SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM,
Aditya Bavanari769c3102018-02-23 16:34:40 +053010573 MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
10574 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575};
10576
10577static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010578 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
10579 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010580 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10581 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010582 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
10583 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010584 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10585 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010586 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
10587 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010588 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10589 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010590 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
10591 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010592 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10593 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010594 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
10595 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010596 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10597 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010598 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
10599 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010600 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10601 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010602 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10603 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010604 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10605 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010606 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10607 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010608 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10609 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010610 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10611 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010612 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10613 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010614 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
10615 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010616 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10617 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010618 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
10619 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010620 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10621 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010622 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
10623 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010624 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10625 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010626 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
10627 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010628 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10629 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010630 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
10631 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010632 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10633 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010634 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
10635 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010636 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10637 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010638 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
10639 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010640 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10641 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010642 SOC_DOUBLE_EXT("PRI_TDM_TX_3_Voip", SND_SOC_NOPM,
10643 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Bala Kishore Pati38de3862018-06-15 17:38:40 +053010644 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
10645 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010646};
10647
10648static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010649 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010651 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10652 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010653 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010655 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10656 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010657 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010659 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10660 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010661 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010663 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10664 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010665 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010667 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10668 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010669 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010671 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10672 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010673 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010675 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10676 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010677 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010679 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10680 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010681 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010683 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10684 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010685 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010687 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10688 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010689 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010691 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10692 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010693 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010695 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10696 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010697 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10698 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010699 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10700 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010701 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10702 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010703 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10704 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010705 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10706 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010707 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10708 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010709 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10710 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010711 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10712 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010713 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10714 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010715 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10716 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010717 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10718 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010719 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10720 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010721 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10722 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010723 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10724 msm_routing_put_voice_stub_mixer),
10725};
10726
10727static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010728 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10729 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010730 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10731 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010732 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10733 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010734 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10735 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010736 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10737 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010738 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10739 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010740 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10741 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010742 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10743 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010744 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010746 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10747 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010748 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010750 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10751 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010752 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010754 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10755 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010756 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010758 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10759 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010760 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010762 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10763 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010764 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010766 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10767 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010768 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010770 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10771 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010772 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010774 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10775 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010776 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010778 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10779 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010780 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010782 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10783 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010784 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010786 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10787 msm_routing_put_voice_stub_mixer),
10788};
10789
10790static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010791 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
10792 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010793 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10794 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010795 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
10796 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010797 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10798 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010799 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
10800 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010801 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10802 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010803 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10804 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010805 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10806 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010807 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10808 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010809 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10810 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010811 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10812 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010813 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10814 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010815 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10816 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010817 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10818 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010819 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
10820 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010821 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10822 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010823 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10824 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010825 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10826 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010827 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
10828 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010829 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10830 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010831 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10832 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010833 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10834 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010835 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10836 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010837 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10838 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010839 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10840 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010841 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10842 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010843 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10844 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010845 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10846 msm_routing_put_voice_stub_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010847 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10848 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010849 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
10850 msm_routing_put_voice_stub_mixer),
10851};
10852
10853static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010854 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
10855 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010856 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10857 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010858 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
10859 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010860 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10861 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010862 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
10863 MSM_BACKEND_DAI_INT_BT_SCO_TX,
10864 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010865 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010866 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
10867 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010868 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10869 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010870 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10871 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010872 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10873 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010874 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10875 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010876 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10877 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010878 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10879 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010880 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10881 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010882 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10883 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010884 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10885 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010886 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
10887 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010888 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10889 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010890 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
10891 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010892 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10893 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010894 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
10895 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010896 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10897 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010898 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
10899 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010900 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10901 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010902 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
10903 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010904 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10905 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010906 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
10907 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010908 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10909 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010910 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
10911 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010912 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10913 msm_routing_put_voice_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010914 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010916 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
10917 msm_routing_put_voice_mixer),
10918};
10919
10920static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010921 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10922 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010923 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10924 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010925 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10926 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010927 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10928 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010929 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010931 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10932 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010933 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10934 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010935 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10936 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010937 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10938 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010939 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10940 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010941 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10942 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010943 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10944 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010945 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10946 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010947 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
10948 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010949 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010951 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
10952 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010953 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10954 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010955 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
10956 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010957 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010959 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
10960 msm_routing_put_port_mixer),
10961};
10962
10963static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053010964 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10965 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010966 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10967 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010968 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10969 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010970 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10971 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010972 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10973 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010974 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10975 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010976 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10977 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010978 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10979 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010980 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10981 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053010982 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10983 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010984 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10985 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010986 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
10987 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010988 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10989 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010990 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
10991 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010992 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10993 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010994 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
10995 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053010996 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10997 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010998 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
10999 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011000 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11001 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011002 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11003 msm_routing_put_port_mixer),
11004};
11005
11006static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011007 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11008 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011009 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11010 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011011 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11012 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011013 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11014 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011015 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11016 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011017 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11018 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011019 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11020 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011021 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11022 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011023 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11024 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011025 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11026 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011027 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11028 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011029 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11030 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011031 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11032 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011033 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11034 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011035 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11036 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011037 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11038 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011039 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11040 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011041 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11042 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011043 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11044 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011045 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11046 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011047 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11048 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011049 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11050 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011051 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11052 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011053 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11054 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011055 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11056 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011057 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11058 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011059 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11060 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011061 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11062 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011063 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11064 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011065 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11066 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011067 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11068 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011069 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11070 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011071 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11072 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011073 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11074 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011075 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
11076 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011077 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11078 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011079 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
11080 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011081 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11082 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011083 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
11084 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011085 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11086 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011087 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
11088 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011089 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11090 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011091 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
11092 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011093 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
11094 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011095};
11096
11097static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011098 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11099 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011100 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11101 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011102 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11103 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011104 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11105 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011106 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11107 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011108 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11109 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011110 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11111 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011112 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11113 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011114 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11115 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011116 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
11117 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011118 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11119 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011120 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11121 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011122};
11123
11124static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011125 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11126 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011127 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11128 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011129 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11130 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011131 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11132 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011133 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11134 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011135 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11136 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011137 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11138 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011139 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11140 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011141};
11142
11143static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011144 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11145 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011146 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11147 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011148 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11149 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011150 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11151 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011152 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11153 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011154 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11155 msm_routing_put_port_mixer),
11156};
11157
11158static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011159 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11160 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011161 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11162 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011163 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11164 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011165 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11166 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011167 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11168 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011169 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11170 msm_routing_put_port_mixer),
11171};
11172
Rohit Kumara5077932017-09-10 22:05:05 +053011173static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011174 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
11175 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011176 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11177 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011178 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11179 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011180 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11181 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011182 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11183 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011184 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11185 msm_routing_put_port_mixer),
11186};
11187
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011188static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011189 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11190 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011191 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11192 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011193 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11194 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011195 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
11196 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011197 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11198 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011199 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11200 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011201 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11202 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011203 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11204 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011205 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
11206 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011207 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11208 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011209 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
11210 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011211 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11212 msm_routing_put_port_mixer),
11213};
11214
11215static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011216 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
11217 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011218 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
11219 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011220 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11221 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011222 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11223 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011224 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
11225 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011226 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
11227 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011228 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011230 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
11231 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011232 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
11233 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011234 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
11235 msm_routing_put_port_mixer),
11236};
11237
11238static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011239 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11240 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011241 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11242 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011243 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11244 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011245 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11246 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011247 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11248 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011249 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11250 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011251 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11252 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011253 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
11254 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011255 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11256 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011257 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11258 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011259 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11260 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011261 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11262 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011263 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11264 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011265 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11266 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011267 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11268 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011269 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11270 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011271 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11272 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011273 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11274 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011275 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11276 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011277 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11278 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011279 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11280 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011281 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11282 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011283 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11284 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011285 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11286 msm_routing_put_port_mixer),
11287};
11288
11289static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011290 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11291 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011292 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11293 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011294 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11295 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011296 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11297 msm_routing_put_port_mixer),
11298};
11299
11300static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011301 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11302 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011303 MSM_BACKEND_DAI_INT_FM_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("SLIM_1_TX", SND_SOC_NOPM,
11306 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011307 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11308 msm_routing_put_port_mixer),
11309};
11310
11311
11312static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011313 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11314 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011315 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11316 msm_routing_put_port_mixer),
11317};
11318
11319static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011320 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11321 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011322 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11323 msm_routing_put_port_mixer),
11324};
11325
11326static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011327 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011329 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11330 msm_routing_put_port_mixer),
11331};
11332
11333static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011334 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
11335 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011336 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
11337 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011338 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11339 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011340 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11341 msm_routing_put_port_mixer),
11342};
11343
11344static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011345 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11346 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011347 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11348 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011349 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11350 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011351 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11352 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011353 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011355 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11356 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011357 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011359 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11360 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011361 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011363 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
11364 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011365 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011367 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11368 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011369 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011371 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11372 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011373 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11374 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011375 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11376 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011377 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11378 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011379 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11380 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011381 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11382 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080011383 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11384 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011385};
11386
11387static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011388 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11389 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011390 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
11391 msm_routing_put_port_mixer),
11392};
11393
11394static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011395 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11396 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011397 MSM_BACKEND_DAI_PRI_MI2S_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("TERT_MI2S_TX", SND_SOC_NOPM,
11400 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011401 MSM_BACKEND_DAI_TERTIARY_MI2S_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("INTERNAL_FM_TX", SND_SOC_NOPM,
11404 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011405 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
11406 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011407 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11408 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011409 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
11410 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011411 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11412 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011413 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11414 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011415 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11416 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011417 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11418 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011419 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11420 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011421 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11422 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011423 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11424 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011425 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11426 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011427 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011429 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11430 msm_routing_put_port_mixer),
11431};
11432
Rohit Kumara5077932017-09-10 22:05:05 +053011433static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011434 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11435 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011436 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11437 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011438 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11439 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011440 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11441 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011442 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011444 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
11445 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011446 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11447 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011448 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11449 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011450 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11451 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011452 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11453 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011454 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11455 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011456 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
11457 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011458 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053011460 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
11461 msm_routing_put_port_mixer),
11462};
11463
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011464static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011465 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11466 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011467 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11468 msm_routing_get_port_mixer,
11469 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011470 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011472 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11473 msm_routing_get_port_mixer,
11474 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011475 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11476 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011477 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11478 msm_routing_get_port_mixer,
11479 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011480 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11481 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011482 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11483 msm_routing_get_port_mixer,
11484 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011485 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11486 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011487 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11488 msm_routing_get_port_mixer,
11489 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011490 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011492 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11493 msm_routing_get_port_mixer,
11494 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011495 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11496 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011497 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11498 msm_routing_get_port_mixer,
11499 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011500 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11501 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011502 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11503 msm_routing_get_port_mixer,
11504 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011505 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11506 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011507 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11508 msm_routing_get_port_mixer,
11509 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011510 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011512 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11513 msm_routing_get_port_mixer,
11514 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011515 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11516 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011517 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11518 msm_routing_get_port_mixer,
11519 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011520 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11521 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011522 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11523 msm_routing_get_port_mixer,
11524 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011525 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11526 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011527 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11528 msm_routing_get_port_mixer,
11529 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011530 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11531 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011532 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11533 msm_routing_get_port_mixer,
11534 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011535 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11536 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011537 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11538 msm_routing_get_port_mixer,
11539 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011540 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11541 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011542 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11543 msm_routing_get_port_mixer,
11544 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011545 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11546 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011547 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11548 msm_routing_get_port_mixer,
11549 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011550 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11551 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011552 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11553 msm_routing_get_port_mixer,
11554 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011555 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11556 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011557 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11558 msm_routing_get_port_mixer,
11559 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011560 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11561 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011562 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11563 msm_routing_get_port_mixer,
11564 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011565};
11566
11567static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011568 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11569 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011570 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11571 msm_routing_get_port_mixer,
11572 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011573 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11574 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011575 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11576 msm_routing_get_port_mixer,
11577 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011578 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11579 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011580 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11581 msm_routing_get_port_mixer,
11582 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011583 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011585 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11586 msm_routing_get_port_mixer,
11587 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011588 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11589 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011590 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11591 msm_routing_get_port_mixer,
11592 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011593 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11594 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011595 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11596 msm_routing_get_port_mixer,
11597 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011598 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11599 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011600 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11601 msm_routing_get_port_mixer,
11602 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011603 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011605 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11606 msm_routing_get_port_mixer,
11607 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011608 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11609 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011610 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11611 msm_routing_get_port_mixer,
11612 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011613 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11614 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011615 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11616 msm_routing_get_port_mixer,
11617 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011618 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11619 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011620 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11621 msm_routing_get_port_mixer,
11622 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011623 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011625 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11626 msm_routing_get_port_mixer,
11627 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011628 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11629 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011630 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11631 msm_routing_get_port_mixer,
11632 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011633 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11634 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011635 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11636 msm_routing_get_port_mixer,
11637 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011638 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11639 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011640 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11641 msm_routing_get_port_mixer,
11642 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011643 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11644 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011645 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11646 msm_routing_get_port_mixer,
11647 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011648 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11649 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011650 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11651 msm_routing_get_port_mixer,
11652 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011653 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11654 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011655 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11656 msm_routing_get_port_mixer,
11657 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011658 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11659 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011660 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11661 msm_routing_get_port_mixer,
11662 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011663 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11664 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011665 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11666 msm_routing_get_port_mixer,
11667 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011668};
11669
11670static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011671 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11672 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011673 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11674 msm_routing_get_port_mixer,
11675 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011676 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11677 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011678 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11679 msm_routing_get_port_mixer,
11680 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011681 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11682 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011683 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11684 msm_routing_get_port_mixer,
11685 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011686 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11687 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011688 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11689 msm_routing_get_port_mixer,
11690 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011691 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011693 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11694 msm_routing_get_port_mixer,
11695 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011696 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11697 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011698 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11699 msm_routing_get_port_mixer,
11700 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011701 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11702 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011703 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11704 msm_routing_get_port_mixer,
11705 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011706 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11707 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011708 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11709 msm_routing_get_port_mixer,
11710 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011711 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11712 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011713 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11714 msm_routing_get_port_mixer,
11715 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011716 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11717 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011718 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11719 msm_routing_get_port_mixer,
11720 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011721 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11722 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011723 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11724 msm_routing_get_port_mixer,
11725 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011726 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011728 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11729 msm_routing_get_port_mixer,
11730 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011731 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11732 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011733 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11734 msm_routing_get_port_mixer,
11735 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011736 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11737 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011738 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11739 msm_routing_get_port_mixer,
11740 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011741 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11742 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011743 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11744 msm_routing_get_port_mixer,
11745 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011746 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011748 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11749 msm_routing_get_port_mixer,
11750 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011751 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11752 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011753 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11754 msm_routing_get_port_mixer,
11755 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011756 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11757 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011758 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11759 msm_routing_get_port_mixer,
11760 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011761 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11762 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011763 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11764 msm_routing_get_port_mixer,
11765 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011766 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011768 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11769 msm_routing_get_port_mixer,
11770 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011771};
11772
11773static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011774 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011776 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11777 msm_routing_get_port_mixer,
11778 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011779 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11780 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011781 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11782 msm_routing_get_port_mixer,
11783 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011784 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11785 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011786 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11787 msm_routing_get_port_mixer,
11788 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011789 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11790 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011791 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11792 msm_routing_get_port_mixer,
11793 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011794 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011796 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11797 msm_routing_get_port_mixer,
11798 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011799 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11800 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011801 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11802 msm_routing_get_port_mixer,
11803 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011804 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11805 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011806 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11807 msm_routing_get_port_mixer,
11808 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011809 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11810 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011811 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11812 msm_routing_get_port_mixer,
11813 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011814 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11815 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011816 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
11817 msm_routing_get_port_mixer,
11818 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011819 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11820 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011821 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
11822 msm_routing_get_port_mixer,
11823 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011824 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11825 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011826 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
11827 msm_routing_get_port_mixer,
11828 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011829 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11830 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011831 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
11832 msm_routing_get_port_mixer,
11833 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011834 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11835 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011836 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11837 msm_routing_get_port_mixer,
11838 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011839 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11840 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011841 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11842 msm_routing_get_port_mixer,
11843 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011844 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11845 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011846 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11847 msm_routing_get_port_mixer,
11848 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011849 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11850 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011851 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11852 msm_routing_get_port_mixer,
11853 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011854 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11855 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011856 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11857 msm_routing_get_port_mixer,
11858 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011859 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11860 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011861 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11862 msm_routing_get_port_mixer,
11863 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011864 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11865 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011866 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11867 msm_routing_get_port_mixer,
11868 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011869 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011871 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11872 msm_routing_get_port_mixer,
11873 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011874};
11875
11876static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011877 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011879 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11880 msm_routing_get_port_mixer,
11881 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011882 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11883 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011884 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11885 msm_routing_get_port_mixer,
11886 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011887 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11888 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011889 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11890 msm_routing_get_port_mixer,
11891 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011892 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11893 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011894 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11895 msm_routing_get_port_mixer,
11896 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011897 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011899 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
11900 msm_routing_get_port_mixer,
11901 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011902 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11903 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011904 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
11905 msm_routing_get_port_mixer,
11906 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011907 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11908 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011909 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
11910 msm_routing_get_port_mixer,
11911 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011912 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011914 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
11915 msm_routing_get_port_mixer,
11916 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011917 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11918 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011919 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
11920 msm_routing_get_port_mixer,
11921 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011922 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11923 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011924 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
11925 msm_routing_get_port_mixer,
11926 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011927 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11928 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011929 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
11930 msm_routing_get_port_mixer,
11931 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011932 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011934 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
11935 msm_routing_get_port_mixer,
11936 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011937 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11938 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011939 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
11940 msm_routing_get_port_mixer,
11941 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011942 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11943 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011944 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
11945 msm_routing_get_port_mixer,
11946 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011947 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11948 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011949 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
11950 msm_routing_get_port_mixer,
11951 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011952 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011954 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
11955 msm_routing_get_port_mixer,
11956 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011957 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11958 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011959 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
11960 msm_routing_get_port_mixer,
11961 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011962 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11963 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011964 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
11965 msm_routing_get_port_mixer,
11966 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011967 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11968 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011969 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
11970 msm_routing_get_port_mixer,
11971 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011972 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11973 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011974 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
11975 msm_routing_get_port_mixer,
11976 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011977};
11978
11979static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053011980 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11981 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011982 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
11983 msm_routing_get_port_mixer,
11984 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011985 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11986 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011987 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
11988 msm_routing_get_port_mixer,
11989 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011990 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11991 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011992 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
11993 msm_routing_get_port_mixer,
11994 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053011995 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11996 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011997 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
11998 msm_routing_get_port_mixer,
11999 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012000 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12001 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012002 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12003 msm_routing_get_port_mixer,
12004 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012005 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12006 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012007 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12008 msm_routing_get_port_mixer,
12009 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012010 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12011 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012012 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12013 msm_routing_get_port_mixer,
12014 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012015 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12016 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012017 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12018 msm_routing_get_port_mixer,
12019 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012020 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12021 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012022 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12023 msm_routing_get_port_mixer,
12024 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012025 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012027 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12028 msm_routing_get_port_mixer,
12029 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012030 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12031 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012032 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12033 msm_routing_get_port_mixer,
12034 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012035 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12036 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012037 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12038 msm_routing_get_port_mixer,
12039 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012040 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12041 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012042 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12043 msm_routing_get_port_mixer,
12044 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012045 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012047 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12048 msm_routing_get_port_mixer,
12049 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012050 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12051 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012052 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12053 msm_routing_get_port_mixer,
12054 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012055 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12056 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012057 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12058 msm_routing_get_port_mixer,
12059 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012060 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12061 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012062 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12063 msm_routing_get_port_mixer,
12064 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012065 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012067 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12068 msm_routing_get_port_mixer,
12069 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012070 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012072 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12073 msm_routing_get_port_mixer,
12074 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012075 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12076 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012077 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12078 msm_routing_get_port_mixer,
12079 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012080};
12081
12082static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012083 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12084 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012085 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12086 msm_routing_get_port_mixer,
12087 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012088 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12089 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012090 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12091 msm_routing_get_port_mixer,
12092 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012093 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12094 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012095 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12096 msm_routing_get_port_mixer,
12097 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012098 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12099 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012100 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12101 msm_routing_get_port_mixer,
12102 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012103 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12104 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12106 msm_routing_get_port_mixer,
12107 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012108 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12109 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012110 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12111 msm_routing_get_port_mixer,
12112 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012113 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12114 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012115 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12116 msm_routing_get_port_mixer,
12117 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012118 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12121 msm_routing_get_port_mixer,
12122 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012123 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12124 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012125 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12126 msm_routing_get_port_mixer,
12127 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012128 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12129 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012130 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12131 msm_routing_get_port_mixer,
12132 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012133 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12136 msm_routing_get_port_mixer,
12137 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012138 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12139 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012140 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12141 msm_routing_get_port_mixer,
12142 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012143 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12144 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012145 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12146 msm_routing_get_port_mixer,
12147 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012148 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12149 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012150 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12151 msm_routing_get_port_mixer,
12152 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012153 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12154 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012155 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12156 msm_routing_get_port_mixer,
12157 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012158 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12159 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012160 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12161 msm_routing_get_port_mixer,
12162 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012163 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12164 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012165 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12166 msm_routing_get_port_mixer,
12167 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012168 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12169 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012170 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12171 msm_routing_get_port_mixer,
12172 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012173 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12174 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012175 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12176 msm_routing_get_port_mixer,
12177 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012178 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12179 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012180 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12181 msm_routing_get_port_mixer,
12182 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012183};
12184
12185static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012186 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12187 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012188 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12189 msm_routing_get_port_mixer,
12190 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012191 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12192 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012193 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12194 msm_routing_get_port_mixer,
12195 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012196 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12197 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012198 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12199 msm_routing_get_port_mixer,
12200 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012201 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12202 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012203 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12204 msm_routing_get_port_mixer,
12205 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012206 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12207 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012208 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12209 msm_routing_get_port_mixer,
12210 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012211 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12212 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012213 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12214 msm_routing_get_port_mixer,
12215 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012216 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12217 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012218 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12219 msm_routing_get_port_mixer,
12220 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012221 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012223 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12224 msm_routing_get_port_mixer,
12225 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012226 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
12227 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012228 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
12229 msm_routing_get_port_mixer,
12230 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012231 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
12232 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012233 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
12234 msm_routing_get_port_mixer,
12235 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012236 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
12237 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012238 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
12239 msm_routing_get_port_mixer,
12240 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012241 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
12242 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012243 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
12244 msm_routing_get_port_mixer,
12245 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012246 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12247 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012248 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12249 msm_routing_get_port_mixer,
12250 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012251 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12252 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012253 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12254 msm_routing_get_port_mixer,
12255 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012256 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12257 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012258 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12259 msm_routing_get_port_mixer,
12260 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012261 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12262 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012263 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12264 msm_routing_get_port_mixer,
12265 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012266 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12267 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012268 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12269 msm_routing_get_port_mixer,
12270 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012271 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012273 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12274 msm_routing_get_port_mixer,
12275 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012276 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12277 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012278 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12279 msm_routing_get_port_mixer,
12280 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012281 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12282 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012283 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12284 msm_routing_get_port_mixer,
12285 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012286};
12287
12288static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012289 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12290 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012291 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12292 msm_routing_get_port_mixer,
12293 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012294 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012296 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12297 msm_routing_get_port_mixer,
12298 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012299 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12300 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012301 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12302 msm_routing_get_port_mixer,
12303 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012304 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12305 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012306 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12307 msm_routing_get_port_mixer,
12308 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012309 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012311 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12312 msm_routing_get_port_mixer,
12313 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012314 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12315 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012316 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12317 msm_routing_get_port_mixer,
12318 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012319 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12320 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012321 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12322 msm_routing_get_port_mixer,
12323 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012324 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12325 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012326 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12327 msm_routing_get_port_mixer,
12328 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012329 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12330 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012331 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12332 msm_routing_get_port_mixer,
12333 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012334 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12335 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012336 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12337 msm_routing_get_port_mixer,
12338 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012339 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12340 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012341 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12342 msm_routing_get_port_mixer,
12343 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012344 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12345 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012346 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12347 msm_routing_get_port_mixer,
12348 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012349 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12350 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012351 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12352 msm_routing_get_port_mixer,
12353 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012354 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12355 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012356 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12357 msm_routing_get_port_mixer,
12358 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012359 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12360 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012361 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12362 msm_routing_get_port_mixer,
12363 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012364 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12365 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012366 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12367 msm_routing_get_port_mixer,
12368 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012369 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12370 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012371 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12372 msm_routing_get_port_mixer,
12373 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012374 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012376 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12377 msm_routing_get_port_mixer,
12378 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012379 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12380 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012381 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12382 msm_routing_get_port_mixer,
12383 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012384 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12385 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012386 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12387 msm_routing_get_port_mixer,
12388 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012389};
12390
12391static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012392 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12393 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012394 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12395 msm_routing_get_port_mixer,
12396 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012397 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012399 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12400 msm_routing_get_port_mixer,
12401 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012402 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12403 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012404 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12405 msm_routing_get_port_mixer,
12406 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012407 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12408 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012409 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12410 msm_routing_get_port_mixer,
12411 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012412 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12413 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012414 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12415 msm_routing_get_port_mixer,
12416 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012417 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12418 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012419 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12420 msm_routing_get_port_mixer,
12421 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012422 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12423 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012424 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12425 msm_routing_get_port_mixer,
12426 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012427 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12428 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012429 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12430 msm_routing_get_port_mixer,
12431 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012432 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012434 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12435 msm_routing_get_port_mixer,
12436 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012437 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12438 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012439 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12440 msm_routing_get_port_mixer,
12441 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012442 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12443 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012444 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12445 msm_routing_get_port_mixer,
12446 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012447 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012449 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12450 msm_routing_get_port_mixer,
12451 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012452 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12453 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012454 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12455 msm_routing_get_port_mixer,
12456 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012457 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12458 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012459 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12460 msm_routing_get_port_mixer,
12461 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012462 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12463 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012464 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12465 msm_routing_get_port_mixer,
12466 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012467 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12468 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012469 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12470 msm_routing_get_port_mixer,
12471 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012472 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12473 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012474 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12475 msm_routing_get_port_mixer,
12476 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012477 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12478 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012479 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12480 msm_routing_get_port_mixer,
12481 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012482 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12483 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012484 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12485 msm_routing_get_port_mixer,
12486 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012487 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12488 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012489 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12490 msm_routing_get_port_mixer,
12491 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012492};
12493
12494static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012495 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12496 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012497 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12498 msm_routing_get_port_mixer,
12499 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012500 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12501 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012502 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12503 msm_routing_get_port_mixer,
12504 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012505 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12506 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012507 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12508 msm_routing_get_port_mixer,
12509 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012510 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12511 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012512 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12513 msm_routing_get_port_mixer,
12514 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012515 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12516 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012517 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12518 msm_routing_get_port_mixer,
12519 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012520 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12521 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012522 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12523 msm_routing_get_port_mixer,
12524 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012525 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12526 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012527 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12528 msm_routing_get_port_mixer,
12529 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012530 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12531 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012532 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12533 msm_routing_get_port_mixer,
12534 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012535 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12536 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012537 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12538 msm_routing_get_port_mixer,
12539 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012540 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12541 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012542 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12543 msm_routing_get_port_mixer,
12544 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012545 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12546 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012547 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12548 msm_routing_get_port_mixer,
12549 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012550 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12551 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012552 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12553 msm_routing_get_port_mixer,
12554 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012555 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12556 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012557 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12558 msm_routing_get_port_mixer,
12559 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012560 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12561 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012562 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12563 msm_routing_get_port_mixer,
12564 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012565 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12566 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012567 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12568 msm_routing_get_port_mixer,
12569 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012570 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12571 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012572 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12573 msm_routing_get_port_mixer,
12574 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012575 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12576 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012577 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12578 msm_routing_get_port_mixer,
12579 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012580 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12581 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012582 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12583 msm_routing_get_port_mixer,
12584 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012585 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12586 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012587 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12588 msm_routing_get_port_mixer,
12589 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012590 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12591 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012592 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12593 msm_routing_get_port_mixer,
12594 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012595};
12596
12597static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012598 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12599 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012600 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12601 msm_routing_get_port_mixer,
12602 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012603 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12604 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012605 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12606 msm_routing_get_port_mixer,
12607 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012608 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
12611 msm_routing_get_port_mixer,
12612 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012613 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12614 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012615 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12616 msm_routing_get_port_mixer,
12617 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012618 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12619 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012620 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12621 msm_routing_get_port_mixer,
12622 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012623 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12624 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012625 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12626 msm_routing_get_port_mixer,
12627 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012628 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12629 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012630 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12631 msm_routing_get_port_mixer,
12632 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012633 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12634 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012635 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12636 msm_routing_get_port_mixer,
12637 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012638 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12639 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012640 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12641 msm_routing_get_port_mixer,
12642 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012643 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12644 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012645 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12646 msm_routing_get_port_mixer,
12647 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012648 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12649 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012650 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12651 msm_routing_get_port_mixer,
12652 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012653 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12654 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012655 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12656 msm_routing_get_port_mixer,
12657 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012658 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12661 msm_routing_get_port_mixer,
12662 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012663 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12664 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012665 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12666 msm_routing_get_port_mixer,
12667 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012668 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12669 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012670 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12671 msm_routing_get_port_mixer,
12672 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012673 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012675 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12676 msm_routing_get_port_mixer,
12677 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012678 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12679 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012680 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12681 msm_routing_get_port_mixer,
12682 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012683 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12684 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012685 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12686 msm_routing_get_port_mixer,
12687 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012688 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012690 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12691 msm_routing_get_port_mixer,
12692 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012693 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12694 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053012695 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12696 msm_routing_get_port_mixer,
12697 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012698};
12699
12700static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012701 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12702 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012703 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12704 msm_routing_get_port_mixer,
12705 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012706 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12707 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012708 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12709 msm_routing_get_port_mixer,
12710 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012711 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12712 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012713 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12714 msm_routing_get_port_mixer,
12715 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012716 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12717 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012718 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12719 msm_routing_get_port_mixer,
12720 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012721 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12722 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012723 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12724 msm_routing_get_port_mixer,
12725 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012726 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12727 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012728 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12729 msm_routing_get_port_mixer,
12730 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012731 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12732 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012733 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12734 msm_routing_get_port_mixer,
12735 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012736 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12737 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012738 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12739 msm_routing_get_port_mixer,
12740 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012741 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12742 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012743 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12744 msm_routing_get_port_mixer,
12745 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012746 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12747 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012748 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12749 msm_routing_get_port_mixer,
12750 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012751 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12752 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012753 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12754 msm_routing_get_port_mixer,
12755 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012756 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12757 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012758 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12759 msm_routing_get_port_mixer,
12760 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012761 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12762 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012763 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12764 msm_routing_get_port_mixer,
12765 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012766 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12767 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012768 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12769 msm_routing_get_port_mixer,
12770 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012771 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12772 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012773 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12774 msm_routing_get_port_mixer,
12775 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012776 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12777 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012778 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12779 msm_routing_get_port_mixer,
12780 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012781 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12782 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012783 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12784 msm_routing_get_port_mixer,
12785 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012786 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12787 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012788 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12789 msm_routing_get_port_mixer,
12790 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012791 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12792 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012793 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12794 msm_routing_get_port_mixer,
12795 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012796 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12797 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053012798 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12799 msm_routing_get_port_mixer,
12800 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012801};
12802
12803static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012804 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12805 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012806 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12807 msm_routing_get_port_mixer,
12808 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012809 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12810 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012811 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12812 msm_routing_get_port_mixer,
12813 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012814 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12815 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012816 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12817 msm_routing_get_port_mixer,
12818 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012819 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12820 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012821 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12822 msm_routing_get_port_mixer,
12823 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012824 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12825 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012826 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12827 msm_routing_get_port_mixer,
12828 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012829 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12830 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012831 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12832 msm_routing_get_port_mixer,
12833 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012834 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12835 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012836 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12837 msm_routing_get_port_mixer,
12838 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012839 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12840 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012841 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12842 msm_routing_get_port_mixer,
12843 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012844 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12845 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012846 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12847 msm_routing_get_port_mixer,
12848 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012849 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012851 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12852 msm_routing_get_port_mixer,
12853 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012854 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12855 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012856 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12857 msm_routing_get_port_mixer,
12858 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012859 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12860 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012861 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12862 msm_routing_get_port_mixer,
12863 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012864 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12865 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012866 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12867 msm_routing_get_port_mixer,
12868 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012869 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12870 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012871 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12872 msm_routing_get_port_mixer,
12873 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012874 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12875 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012876 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12877 msm_routing_get_port_mixer,
12878 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012879 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12880 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012881 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12882 msm_routing_get_port_mixer,
12883 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012884 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12885 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012886 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12887 msm_routing_get_port_mixer,
12888 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012889 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12890 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012891 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12892 msm_routing_get_port_mixer,
12893 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012894 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12895 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012896 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
12897 msm_routing_get_port_mixer,
12898 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012899 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053012901 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
12902 msm_routing_get_port_mixer,
12903 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012904};
12905
12906static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053012907 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12908 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012909 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
12910 msm_routing_get_port_mixer,
12911 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012912 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
12913 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012914 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
12915 msm_routing_get_port_mixer,
12916 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012917 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12918 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012919 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
12920 msm_routing_get_port_mixer,
12921 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012922 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12923 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012924 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
12925 msm_routing_get_port_mixer,
12926 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012927 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12928 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012929 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
12930 msm_routing_get_port_mixer,
12931 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012932 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012934 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
12935 msm_routing_get_port_mixer,
12936 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012937 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
12938 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012939 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
12940 msm_routing_get_port_mixer,
12941 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012942 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
12943 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012944 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
12945 msm_routing_get_port_mixer,
12946 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012947 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
12948 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012949 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
12950 msm_routing_get_port_mixer,
12951 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012952 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
12953 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012954 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
12955 msm_routing_get_port_mixer,
12956 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012957 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
12958 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012959 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
12960 msm_routing_get_port_mixer,
12961 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012962 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
12963 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012964 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
12965 msm_routing_get_port_mixer,
12966 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012967 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
12968 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012969 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
12970 msm_routing_get_port_mixer,
12971 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012972 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
12973 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012974 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
12975 msm_routing_get_port_mixer,
12976 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012977 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
12978 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012979 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
12980 msm_routing_get_port_mixer,
12981 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012982 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
12983 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012984 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
12985 msm_routing_get_port_mixer,
12986 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012987 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
12988 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012989 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
12990 msm_routing_get_port_mixer,
12991 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012992 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
12993 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012994 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
12995 msm_routing_get_port_mixer,
12996 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053012997 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
12998 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053012999 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13000 msm_routing_get_port_mixer,
13001 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013002 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13003 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013004 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13005 msm_routing_get_port_mixer,
13006 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013007};
13008
13009static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013010 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13011 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013012 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13013 msm_routing_get_port_mixer,
13014 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013015 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013017 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13018 msm_routing_get_port_mixer,
13019 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013020 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13021 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013022 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13023 msm_routing_get_port_mixer,
13024 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013025 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13026 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013027 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13028 msm_routing_get_port_mixer,
13029 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013030 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13031 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013032 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13033 msm_routing_get_port_mixer,
13034 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013035 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13036 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013037 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13038 msm_routing_get_port_mixer,
13039 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013040 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13041 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013042 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13043 msm_routing_get_port_mixer,
13044 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013045 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13046 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013047 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13048 msm_routing_get_port_mixer,
13049 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013050 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13051 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013052 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13053 msm_routing_get_port_mixer,
13054 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013055 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13056 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13058 msm_routing_get_port_mixer,
13059 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013060 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13061 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013062 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13063 msm_routing_get_port_mixer,
13064 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013065 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13066 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013067 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13068 msm_routing_get_port_mixer,
13069 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013070 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13071 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13073 msm_routing_get_port_mixer,
13074 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013075 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13076 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013077 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13078 msm_routing_get_port_mixer,
13079 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013080 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13081 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013082 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13083 msm_routing_get_port_mixer,
13084 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013085 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13086 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013087 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13088 msm_routing_get_port_mixer,
13089 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013090 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13091 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013092 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13093 msm_routing_get_port_mixer,
13094 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013095 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013097 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13098 msm_routing_get_port_mixer,
13099 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013100 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13101 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013102 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13103 msm_routing_get_port_mixer,
13104 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013105 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13106 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013107 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13108 msm_routing_get_port_mixer,
13109 msm_routing_put_port_mixer),
13110};
13111
13112static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013113 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13114 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013115 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13116 msm_routing_get_port_mixer,
13117 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013118 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13119 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013120 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13121 msm_routing_get_port_mixer,
13122 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013123 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13124 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013125 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13126 msm_routing_get_port_mixer,
13127 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013128 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13129 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013130 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13131 msm_routing_get_port_mixer,
13132 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013133 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13134 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013135 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13136 msm_routing_get_port_mixer,
13137 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013138 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13139 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013140 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13141 msm_routing_get_port_mixer,
13142 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013143 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13144 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013145 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13146 msm_routing_get_port_mixer,
13147 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013148 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13149 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013150 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13151 msm_routing_get_port_mixer,
13152 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013153 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013155 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13156 msm_routing_get_port_mixer,
13157 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013158 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13159 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013160 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13161 msm_routing_get_port_mixer,
13162 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013163 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13164 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013165 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13166 msm_routing_get_port_mixer,
13167 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013168 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013170 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13171 msm_routing_get_port_mixer,
13172 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013173 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13174 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013175 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13176 msm_routing_get_port_mixer,
13177 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013178 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13179 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013180 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13181 msm_routing_get_port_mixer,
13182 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013183 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13184 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013185 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13186 msm_routing_get_port_mixer,
13187 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013188 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13189 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013190 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13191 msm_routing_get_port_mixer,
13192 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013193 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13194 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013195 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13196 msm_routing_get_port_mixer,
13197 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013198 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13199 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013200 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13201 msm_routing_get_port_mixer,
13202 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013203 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13204 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013205 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13206 msm_routing_get_port_mixer,
13207 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013208 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13209 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053013210 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13211 msm_routing_get_port_mixer,
13212 msm_routing_put_port_mixer),
13213};
13214
13215static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013216 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13217 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013218 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13219 msm_routing_get_port_mixer,
13220 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013221 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13222 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013223 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13224 msm_routing_get_port_mixer,
13225 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013226 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13227 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013228 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13229 msm_routing_get_port_mixer,
13230 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013231 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13232 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013233 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13234 msm_routing_get_port_mixer,
13235 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013236 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013238 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13239 msm_routing_get_port_mixer,
13240 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013241 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13242 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013243 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13244 msm_routing_get_port_mixer,
13245 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013246 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13247 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013248 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13249 msm_routing_get_port_mixer,
13250 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013251 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13252 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013253 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13254 msm_routing_get_port_mixer,
13255 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013256 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013258 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13259 msm_routing_get_port_mixer,
13260 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013261 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13262 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013263 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13264 msm_routing_get_port_mixer,
13265 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013266 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13267 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013268 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13269 msm_routing_get_port_mixer,
13270 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013271 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13272 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013273 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13274 msm_routing_get_port_mixer,
13275 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013276 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013278 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13279 msm_routing_get_port_mixer,
13280 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013281 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13282 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013283 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13284 msm_routing_get_port_mixer,
13285 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013286 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13287 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013288 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13289 msm_routing_get_port_mixer,
13290 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013291 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13292 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013293 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13294 msm_routing_get_port_mixer,
13295 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013296 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013298 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13299 msm_routing_get_port_mixer,
13300 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013301 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13302 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013303 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13304 msm_routing_get_port_mixer,
13305 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013306 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13307 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013308 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13309 msm_routing_get_port_mixer,
13310 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013311 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053013313 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13314 msm_routing_get_port_mixer,
13315 msm_routing_put_port_mixer),
13316};
13317
13318static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013319 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013321 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13322 msm_routing_get_port_mixer,
13323 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013324 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13325 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013326 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13327 msm_routing_get_port_mixer,
13328 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013329 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13330 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013331 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13332 msm_routing_get_port_mixer,
13333 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013334 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13335 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013336 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13337 msm_routing_get_port_mixer,
13338 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013339 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013341 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13342 msm_routing_get_port_mixer,
13343 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013344 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13345 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013346 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13347 msm_routing_get_port_mixer,
13348 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013349 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13350 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013351 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13352 msm_routing_get_port_mixer,
13353 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013354 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13355 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013356 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13357 msm_routing_get_port_mixer,
13358 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013359 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013361 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13362 msm_routing_get_port_mixer,
13363 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013364 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13365 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013366 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13367 msm_routing_get_port_mixer,
13368 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013369 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13370 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013371 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13372 msm_routing_get_port_mixer,
13373 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013374 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13375 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013376 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13377 msm_routing_get_port_mixer,
13378 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013379 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13380 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013381 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13382 msm_routing_get_port_mixer,
13383 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013384 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13385 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013386 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13387 msm_routing_get_port_mixer,
13388 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013389 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13390 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013391 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13392 msm_routing_get_port_mixer,
13393 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013394 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13395 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013396 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13397 msm_routing_get_port_mixer,
13398 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013399 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13400 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013401 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13402 msm_routing_get_port_mixer,
13403 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013404 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13405 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013406 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13407 msm_routing_get_port_mixer,
13408 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013409 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13410 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013411 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13412 msm_routing_get_port_mixer,
13413 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013414 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053013416 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13417 msm_routing_get_port_mixer,
13418 msm_routing_put_port_mixer),
13419};
13420
13421static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013422 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013424 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
13425 msm_routing_get_port_mixer,
13426 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013427 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13428 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013429 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
13430 msm_routing_get_port_mixer,
13431 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013432 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13433 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013434 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
13435 msm_routing_get_port_mixer,
13436 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013437 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13438 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013439 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
13440 msm_routing_get_port_mixer,
13441 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013442 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13443 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013444 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
13445 msm_routing_get_port_mixer,
13446 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013447 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13448 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013449 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
13450 msm_routing_get_port_mixer,
13451 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013452 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13453 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013454 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
13455 msm_routing_get_port_mixer,
13456 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013457 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13458 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013459 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
13460 msm_routing_get_port_mixer,
13461 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013462 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013464 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
13465 msm_routing_get_port_mixer,
13466 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013467 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
13468 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013469 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
13470 msm_routing_get_port_mixer,
13471 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013472 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
13473 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013474 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
13475 msm_routing_get_port_mixer,
13476 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013477 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
13478 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013479 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
13480 msm_routing_get_port_mixer,
13481 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013482 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013484 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
13485 msm_routing_get_port_mixer,
13486 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013487 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
13488 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013489 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
13490 msm_routing_get_port_mixer,
13491 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013492 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
13493 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013494 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
13495 msm_routing_get_port_mixer,
13496 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013497 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
13498 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013499 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
13500 msm_routing_get_port_mixer,
13501 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013502 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
13503 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013504 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
13505 msm_routing_get_port_mixer,
13506 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013507 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
13508 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013509 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
13510 msm_routing_get_port_mixer,
13511 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013512 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
13513 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013514 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
13515 msm_routing_get_port_mixer,
13516 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013517 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053013519 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
13520 msm_routing_get_port_mixer,
13521 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013522};
13523
13524static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013525 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013527 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13528 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013529 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13532 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013533 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013535 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13536 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013537 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013539 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13540 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013541 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013543 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13544 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013545 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013547 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13548 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013549 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013551 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13552 msm_routing_put_port_mixer),
13553};
13554
13555static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013556 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13557 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013558 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13559 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013560 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013562 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13563 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013564 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13565 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013566 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13567 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013568 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13569 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013570 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13571 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013572 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013574 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13575 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013576 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13577 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013578 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13579 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013580 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13581 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013582 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13583 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013584 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13587 msm_routing_put_port_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013588 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080013590 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13591 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013592};
13593
13594static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013595 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13596 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013597 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13598 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013599 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13600 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013601 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13602 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013603 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13604 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013605 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13606 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013607 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13608 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013609 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13610 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013611 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13612 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013613 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13614 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013615 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13616 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013617 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13618 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013619 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13620 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013621 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13622 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013623 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13624 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013625 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13626 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013627 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13628 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013629 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13630 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013631 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013633 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
13634 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013635};
13636
13637static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013638 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13639 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013640 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13641 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013642 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
13643 SND_SOC_NOPM,
13644 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013645 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13646 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013647 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013649 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13650 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013651 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013653 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13654 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013655 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13656 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013657 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13658 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013659 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13660 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013661 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13662 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013663 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13666 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013667 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13670 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013671 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013673 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13674 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013675 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13676 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013677 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
13678 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013679};
13680
13681static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013682 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013684 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13685 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013686 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013688 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13689 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013690 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13691 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013692 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13693 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013694 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13695 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013696 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13697 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013698 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13699 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013700 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13701 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013702 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13703 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013704 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13705 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013706 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13707 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013708 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13709 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013710 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13711 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013712 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13713 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013714 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13715 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013716 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13717 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013718 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13719 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013720 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
13721 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013722};
13723
13724static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013725 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13726 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013727 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13728 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013729 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13730 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013731 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13732 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013733 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13734 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013735 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13736 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013737 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13738 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013739 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13740 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013741 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13742 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013743 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13744 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013745 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13746 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013747 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13748 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013749 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13750 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013751 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13752 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013753 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13754 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013755 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13756 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013757 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13758 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013759 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13760 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013761 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13762 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013763 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
13764 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013765};
13766
13767static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013768 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13769 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013770 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13771 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013772 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013774 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13775 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013776 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13779 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013780 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013782 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13783 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013784 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13787 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013788 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13789 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013790 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13791 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013792 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013794 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13795 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013796 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013798 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13799 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013800 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13801 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013802 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13803 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013804 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13805 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013806 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
13807 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013808};
13809
13810static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013811 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13814 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013815 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013817 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13818 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013819 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013821 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13822 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013823 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013825 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13826 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013827 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13828 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013829 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13830 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013831 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13832 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013833 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13834 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013835 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13836 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013837 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13838 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013839 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13840 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013841 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13842 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013843 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13844 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013845 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13846 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013847 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13848 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013849 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
13850 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013851};
13852
13853static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013854 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13855 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013856 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13857 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013858 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13859 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013860 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13861 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013862 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13863 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013864 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13865 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013866 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13867 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013868 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13869 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013870 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13871 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013872 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13873 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013874 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13875 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013876 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13877 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013878 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13879 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013880 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13881 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013882 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13883 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013884 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13885 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013886 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13887 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013888 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13889 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013890 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13891 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013892 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
13893 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013894};
13895
13896static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang007346c2019-10-16 12:52:13 +053013897 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
13898 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013899 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13900 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013901 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
13902 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013903 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13904 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013905 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
13906 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013907 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13908 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013909 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
13910 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013911 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13912 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013913 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
13914 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013915 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13916 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013917 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13918 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013919 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13920 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013921 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013923 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13924 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013925 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13926 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013927 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13928 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013929 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Ashish Jain01b10322018-05-12 15:37:44 +053013931 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13932 msm_routing_put_listen_mixer),
Meng Wang007346c2019-10-16 12:52:13 +053013933 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
13934 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Ashish Jain01b10322018-05-12 15:37:44 +053013935 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
13936 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013937};
13938
13939static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
13940 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13941 0, 1, 0, msm_routing_get_switch_mixer,
13942 msm_routing_put_switch_mixer);
13943
13944static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
13945 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13946 0, 1, 0, msm_routing_get_switch_mixer,
13947 msm_routing_put_switch_mixer);
13948
13949static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
13950 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13951 0, 1, 0, msm_routing_get_switch_mixer,
13952 msm_routing_put_switch_mixer);
13953
13954static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
13955 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13956 0, 1, 0, msm_routing_get_switch_mixer,
13957 msm_routing_put_switch_mixer);
13958
13959static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
13960 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13961 0, 1, 0, msm_routing_get_switch_mixer,
13962 msm_routing_put_switch_mixer);
13963
13964static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
13965 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13966 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
13967 msm_routing_put_fm_pcmrx_switch_mixer);
13968
13969static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
13970 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13971 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
13972 msm_routing_put_int0_mi2s_switch_mixer);
13973
13974static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
13975 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13976 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
13977 msm_routing_put_int4_mi2s_switch_mixer);
13978
13979static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
13980 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13981 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
13982 msm_routing_put_pri_mi2s_switch_mixer);
13983
13984static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
13985 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13986 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
13987 msm_routing_put_sec_mi2s_switch_mixer);
13988
13989static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
13990 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13991 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
13992 msm_routing_put_tert_mi2s_switch_mixer);
13993
13994static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
13995 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
13996 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
13997 msm_routing_put_quat_mi2s_switch_mixer);
13998
Rohit Kumara5077932017-09-10 22:05:05 +053013999static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
14000 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14001 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
14002 msm_routing_put_quin_mi2s_switch_mixer);
14003
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014004static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
14005 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14006 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14007 msm_routing_put_hfp_switch_mixer);
14008
14009static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
14010 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14011 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14012 msm_routing_put_hfp_switch_mixer);
14013
14014static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
14015 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14016 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14017 msm_routing_put_hfp_switch_mixer);
14018
14019static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
14020 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14021 0, 1, 0, msm_routing_get_hfp_switch_mixer,
14022 msm_routing_put_hfp_switch_mixer);
14023
14024static const struct snd_kcontrol_new usb_switch_mixer_controls =
14025 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14026 0, 1, 0, msm_routing_get_usb_switch_mixer,
14027 msm_routing_put_usb_switch_mixer);
14028
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080014029static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
14030 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
14031 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
14032 msm_routing_a2dp_switch_mixer_put);
14033
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014034static const struct soc_enum lsm_port_enum =
14035 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
14036
14037static const char * const lsm_func_text[] = {
14038 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
14039};
14040static const struct soc_enum lsm_func_enum =
14041 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
14042
14043static const struct snd_kcontrol_new lsm_controls[] = {
14044 /* kcontrol of lsm_function */
14045 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14046 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14047 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14048 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14049 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14050 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14051 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14052 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14053 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14054 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14055 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14056 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14057 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14058 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14059 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14060 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14061 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14062 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Ashish Jain01b10322018-05-12 15:37:44 +053014063 SOC_ENUM_EXT(PRI_TDM_TX_2_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14064 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
14065 SOC_ENUM_EXT(PRI_TDM_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
14066 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014067 /* kcontrol of lsm_port */
14068 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
14069 msm_routing_lsm_port_get,
14070 msm_routing_lsm_port_put),
14071 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
14072 msm_routing_lsm_port_get,
14073 msm_routing_lsm_port_put),
14074 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
14075 msm_routing_lsm_port_get,
14076 msm_routing_lsm_port_put),
14077 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
14078 msm_routing_lsm_port_get,
14079 msm_routing_lsm_port_put),
14080 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
14081 msm_routing_lsm_port_get,
14082 msm_routing_lsm_port_put),
14083 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
14084 msm_routing_lsm_port_get,
14085 msm_routing_lsm_port_put),
14086 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
14087 msm_routing_lsm_port_get,
14088 msm_routing_lsm_port_put),
14089 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
14090 msm_routing_lsm_port_get,
14091 msm_routing_lsm_port_put),
14092};
14093
14094static const char * const aanc_slim_0_rx_text[] = {
14095 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
14096 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
14097};
14098
14099static const struct soc_enum aanc_slim_0_rx_enum =
14100 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
14101 aanc_slim_0_rx_text);
14102
14103static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
14104 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
14105 msm_routing_slim_0_rx_aanc_mux_get,
14106 msm_routing_slim_0_rx_aanc_mux_put)
14107};
14108
14109static int msm_routing_get_stereo_to_custom_stereo_control(
14110 struct snd_kcontrol *kcontrol,
14111 struct snd_ctl_elem_value *ucontrol)
14112{
14113 ucontrol->value.integer.value[0] = is_custom_stereo_on;
14114 return 0;
14115}
14116
14117static int msm_routing_put_stereo_to_custom_stereo_control(
14118 struct snd_kcontrol *kcontrol,
14119 struct snd_ctl_elem_value *ucontrol)
14120{
14121 int flag = 0, i = 0, rc = 0, idx = 0;
14122 int be_index = 0, port_id, topo_id;
14123 unsigned int session_id = 0;
14124 uint16_t op_FL_ip_FL_weight = 0;
14125 uint16_t op_FL_ip_FR_weight = 0;
14126 uint16_t op_FR_ip_FL_weight = 0;
14127 uint16_t op_FR_ip_FR_weight = 0;
14128
14129 flag = ucontrol->value.integer.value[0];
14130 pr_debug("%s E flag %d\n", __func__, flag);
14131
14132 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
14133 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
14134 __func__, is_custom_stereo_on, flag);
14135 return 0;
14136 }
14137 is_custom_stereo_on = flag ? true : false;
14138 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
14139 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
14140 port_id = msm_bedais[be_index].port_id;
14141 if (!msm_bedais[be_index].active)
14142 continue;
14143 if ((port_id != SLIMBUS_0_RX) &&
14144 (port_id != RT_PROXY_PORT_001_RX) &&
14145 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
14146 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
14147 continue;
14148
14149 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
14150 MSM_FRONTEND_DAI_MM_SIZE) {
14151 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
14152 LEGACY_PCM_MODE)
14153 goto skip_send_custom_stereo;
14154 session_id =
14155 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
14156 if (is_custom_stereo_on) {
14157 op_FL_ip_FL_weight =
14158 Q14_GAIN_ZERO_POINT_FIVE;
14159 op_FL_ip_FR_weight =
14160 Q14_GAIN_ZERO_POINT_FIVE;
14161 op_FR_ip_FL_weight =
14162 Q14_GAIN_ZERO_POINT_FIVE;
14163 op_FR_ip_FR_weight =
14164 Q14_GAIN_ZERO_POINT_FIVE;
14165 } else {
14166 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
14167 op_FL_ip_FR_weight = 0;
14168 op_FR_ip_FL_weight = 0;
14169 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
14170 }
14171 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
14172 unsigned long copp =
14173 session_copp_map[i]
14174 [SESSION_TYPE_RX][be_index];
14175 if (!test_bit(idx, &copp))
14176 goto skip_send_custom_stereo;
14177 topo_id = adm_get_topology_for_port_copp_idx(
14178 msm_bedais[be_index].port_id, idx);
14179 if (topo_id < 0)
14180 pr_debug("%s:Err:custom stereo topo %d",
14181 __func__, topo_id);
14182 pr_debug("idx %d\n", idx);
14183 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
14184 rc = msm_ds2_dap_set_custom_stereo_onoff
14185 (msm_bedais[be_index].port_id,
14186 idx, is_custom_stereo_on);
14187 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
14188 rc = dolby_dap_set_custom_stereo_onoff(
14189 msm_bedais[be_index].port_id,
14190 idx, is_custom_stereo_on);
14191 else
14192 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
14193 (msm_bedais[be_index].port_id,
14194 idx, session_id,
14195 op_FL_ip_FL_weight,
14196 op_FL_ip_FR_weight,
14197 op_FR_ip_FL_weight,
14198 op_FR_ip_FR_weight);
14199 if (rc < 0)
14200skip_send_custom_stereo:
14201 pr_err("%s: err setting custom stereo\n",
14202 __func__);
14203 }
14204
14205 }
14206 }
14207 return 0;
14208}
14209
14210static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
14211 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
14212 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
14213 msm_routing_put_stereo_to_custom_stereo_control),
14214};
14215
14216static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14217 struct snd_ctl_elem_value *ucontrol)
14218{
14219 return 0;
14220}
14221
14222static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
14223 struct snd_ctl_elem_value *ucontrol)
14224{
14225 int i = 0, j;
14226 int num_app_types = ucontrol->value.integer.value[i++];
14227
14228 pr_debug("%s\n", __func__);
14229
14230 memset(app_type_cfg, 0, MAX_APP_TYPES*
14231 sizeof(struct msm_pcm_routing_app_type_data));
14232 if (num_app_types > MAX_APP_TYPES) {
14233 pr_err("%s: number of app types exceed the max supported\n",
14234 __func__);
14235 return -EINVAL;
14236 }
14237 for (j = 0; j < num_app_types; j++) {
14238 app_type_cfg[j].app_type =
14239 ucontrol->value.integer.value[i++];
14240 app_type_cfg[j].sample_rate =
14241 ucontrol->value.integer.value[i++];
14242 app_type_cfg[j].bit_width =
14243 ucontrol->value.integer.value[i++];
14244 }
14245
14246 return 0;
14247}
14248
14249static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
14250 struct snd_ctl_elem_value *ucontrol)
14251{
14252 int j, fe_id, be_id, port_type;
14253 int ret = 0;
14254 unsigned long copp;
14255 struct msm_pcm_routing_bdai_data *bedai;
14256 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14257 SESSION_TYPE_RX;
14258 int app_type = ucontrol->value.integer.value[1];
14259 int gain = (ucontrol->value.integer.value[2] +
14260 ucontrol->value.integer.value[3])/2;
14261
14262 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14263 MSM_AFE_PORT_TYPE_TX;
14264
14265 mutex_lock(&routing_lock);
14266 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14267 if (is_be_dai_extproc(be_id))
14268 continue;
14269
14270 bedai = &msm_bedais[be_id];
14271 if (afe_get_port_type(bedai->port_id) != port_type)
14272 continue;
14273
14274 if (!bedai->active)
14275 continue;
14276
14277 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14278 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14279 continue;
14280
14281 if (app_type !=
14282 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14283 continue;
14284
14285 copp = session_copp_map[fe_id][dir][be_id];
14286 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
14287 if (!test_bit(j, &copp))
14288 continue;
14289 ret |= adm_set_volume(bedai->port_id, j, gain);
14290 }
14291 }
14292 }
14293 mutex_unlock(&routing_lock);
14294 return ret ? -EINVAL : 0;
14295}
14296
14297static const struct snd_kcontrol_new app_type_cfg_controls[] = {
14298 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
14299 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
14300 msm_routing_put_app_type_cfg_control),
14301 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
14302 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
14303};
14304
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070014305static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
14306 struct snd_ctl_elem_value *ucontrol)
14307{
14308 int copp_idx, fe_id, be_id, port_type;
14309 int ret = 0;
14310 unsigned long copp;
14311 struct msm_pcm_routing_bdai_data *bedai;
14312 char *param_data = NULL;
14313 uint32_t *update_param_data = NULL;
14314 uint32_t param_size = sizeof(uint32_t) +
14315 sizeof(struct adm_param_data_v5);
14316 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
14317 SESSION_TYPE_RX;
14318 int app_type = ucontrol->value.integer.value[1];
14319 int module_id = ucontrol->value.integer.value[2];
14320 int instance_id = ucontrol->value.integer.value[3];
14321 int param_id = ucontrol->value.integer.value[4];
14322 int param_value = ucontrol->value.integer.value[5];
14323
14324 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
14325 MSM_AFE_PORT_TYPE_TX;
14326 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
14327 __func__, app_type, module_id,
14328 instance_id, param_id, param_value);
14329
14330 param_data = kzalloc(param_size, GFP_KERNEL);
14331 if (!param_data)
14332 return -ENOMEM;
14333
14334 update_param_data = (uint32_t *)param_data;
14335 *update_param_data++ = module_id;
14336 *update_param_data++ = param_id;
14337 *update_param_data++ = sizeof(uint32_t);
14338 *update_param_data++ = param_value;
14339
14340 mutex_lock(&routing_lock);
14341 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
14342 if (is_be_dai_extproc(be_id))
14343 continue;
14344
14345 bedai = &msm_bedais[be_id];
14346 if (afe_get_port_type(bedai->port_id) != port_type)
14347 continue;
14348
14349 if (!bedai->active)
14350 continue;
14351
14352 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
14353 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
14354 continue;
14355
14356 if (app_type !=
14357 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
14358 continue;
14359
14360 copp = session_copp_map[fe_id][dir][be_id];
14361 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
14362 copp_idx++) {
14363 if (!test_bit(copp_idx, &copp))
14364 continue;
14365
14366 ret = adm_send_params_v5(bedai->port_id,
14367 copp_idx,
14368 param_data,
14369 param_size);
14370 if (ret) {
14371 pr_err("%s: Setting param failed with err=%d\n",
14372 __func__, ret);
14373 ret = -EINVAL;
14374 goto done;
14375 }
14376 }
14377 }
14378 }
14379done:
14380 mutex_unlock(&routing_lock);
14381 kfree(param_data);
14382 return ret;
14383}
14384
14385static const struct snd_kcontrol_new module_cfg_controls[] = {
14386 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
14387 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
14388};
14389
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014390static int msm_routing_get_lsm_app_type_cfg_control(
14391 struct snd_kcontrol *kcontrol,
14392 struct snd_ctl_elem_value *ucontrol)
14393{
14394 return 0;
14395}
14396
14397static int msm_routing_put_lsm_app_type_cfg_control(
14398 struct snd_kcontrol *kcontrol,
14399 struct snd_ctl_elem_value *ucontrol)
14400{
14401 int i = 0, j;
Ajit Pandey9faede32019-09-06 10:51:02 +053014402 int num_app_types;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014403
Ajit Pandey9faede32019-09-06 10:51:02 +053014404 if (ucontrol->value.integer.value[0] > MAX_APP_TYPES) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014405 pr_err("%s: number of app types exceed the max supported\n",
14406 __func__);
14407 return -EINVAL;
14408 }
Ajit Pandey9faede32019-09-06 10:51:02 +053014409
14410 num_app_types = ucontrol->value.integer.value[i++];
14411 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
14412 sizeof(struct msm_pcm_routing_app_type_data));
14413
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014414 for (j = 0; j < num_app_types; j++) {
14415 lsm_app_type_cfg[j].app_type =
14416 ucontrol->value.integer.value[i++];
14417 lsm_app_type_cfg[j].sample_rate =
14418 ucontrol->value.integer.value[i++];
14419 lsm_app_type_cfg[j].bit_width =
14420 ucontrol->value.integer.value[i++];
14421 }
14422
14423 return 0;
14424}
14425
14426static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
14427 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
14428 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
14429 msm_routing_put_lsm_app_type_cfg_control),
14430};
14431
14432static int msm_routing_get_use_ds1_or_ds2_control(
14433 struct snd_kcontrol *kcontrol,
14434 struct snd_ctl_elem_value *ucontrol)
14435{
14436 ucontrol->value.integer.value[0] = is_ds2_on;
14437 return 0;
14438}
14439
14440static int msm_routing_put_use_ds1_or_ds2_control(
14441 struct snd_kcontrol *kcontrol,
14442 struct snd_ctl_elem_value *ucontrol)
14443{
14444 is_ds2_on = ucontrol->value.integer.value[0];
14445 return 0;
14446}
14447
14448static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
14449 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
14450 1, 0, msm_routing_get_use_ds1_or_ds2_control,
14451 msm_routing_put_use_ds1_or_ds2_control),
14452};
14453
14454int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
14455 struct snd_ctl_elem_value *ucontrol) {
14456 int rc = 0;
14457 int be_idx = 0;
14458 char *param_value;
14459 int *update_param_value;
14460 uint32_t param_length = sizeof(uint32_t);
14461 uint32_t param_payload_len = RMS_PAYLOAD_LEN * sizeof(uint32_t);
14462
14463 param_value = kzalloc(param_length + param_payload_len, GFP_KERNEL);
14464 if (!param_value)
14465 return -ENOMEM;
14466
14467 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
14468 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
14469 break;
14470 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
14471 rc = adm_get_params(SLIMBUS_0_TX, 0,
14472 RMS_MODULEID_APPI_PASSTHRU,
14473 RMS_PARAM_FIRST_SAMPLE,
14474 param_length + param_payload_len,
14475 param_value);
14476 if (rc) {
14477 pr_err("%s: get parameters failed:%d\n", __func__, rc);
14478 kfree(param_value);
14479 return -EINVAL;
14480 }
14481 update_param_value = (int *)param_value;
14482 ucontrol->value.integer.value[0] = update_param_value[0];
14483
14484 pr_debug("%s: FROM DSP value[0] 0x%x\n",
14485 __func__, update_param_value[0]);
14486 }
14487 kfree(param_value);
14488 return 0;
14489}
14490
14491static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
14492 struct snd_ctl_elem_value *ucontrol)
14493{
14494 voc_session_id = ucontrol->value.integer.value[0];
14495
14496 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
14497
14498 return 0;
14499}
14500
14501static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
14502 struct snd_ctl_elem_value *ucontrol)
14503{
14504 ucontrol->value.integer.value[0] = voc_session_id;
14505
14506 return 0;
14507}
14508
14509static struct snd_kcontrol_new msm_voc_session_controls[] = {
14510 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
14511 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
14512 msm_voc_session_id_put),
14513};
14514
14515static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
14516 struct snd_ctl_elem_info *uinfo)
14517{
14518 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
14519 uinfo->count = sizeof(struct sound_focus_param);
14520
14521 return 0;
14522}
14523
14524static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
14525 struct snd_ctl_elem_value *ucontrol)
14526{
14527 int ret = 0;
14528 struct sound_focus_param soundFocusData;
14529
14530 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
14531 sizeof(struct sound_focus_param));
14532 ret = voc_set_sound_focus(soundFocusData);
14533 if (ret) {
14534 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
14535 __func__, ret);
14536
14537 ret = -EINVAL;
14538 }
14539
14540 return ret;
14541}
14542
14543static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
14544 struct snd_ctl_elem_value *ucontrol)
14545{
14546 int ret = 0;
14547 struct sound_focus_param soundFocusData;
14548
14549 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
14550
14551 ret = voc_get_sound_focus(&soundFocusData);
14552 if (ret) {
14553 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
14554 __func__, ret);
14555
14556 ret = -EINVAL;
14557 goto done;
14558 }
14559 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
14560 sizeof(struct sound_focus_param));
14561
14562done:
14563 return ret;
14564}
14565
14566static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
14567 struct snd_ctl_elem_info *uinfo)
14568{
14569 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
14570 uinfo->count = sizeof(struct source_tracking_param);
14571
14572 return 0;
14573}
14574
14575static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
14576 struct snd_ctl_elem_value *ucontrol)
14577{
14578 int ret = 0;
14579 struct source_tracking_param sourceTrackingData;
14580
14581 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
14582
14583 ret = voc_get_source_tracking(&sourceTrackingData);
14584 if (ret) {
14585 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
14586 __func__, ret);
14587
14588 ret = -EINVAL;
14589 goto done;
14590 }
14591 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
14592 sizeof(struct source_tracking_param));
14593
14594done:
14595 return ret;
14596}
14597
14598static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
14599 int *copp_idx)
14600{
14601 int i, idx, be_idx;
14602 int ret = 0;
14603 unsigned long copp;
14604
14605 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
14606
14607 ret = q6audio_validate_port(port_id);
14608 if (ret < 0) {
14609 pr_err("%s: port validation failed id 0x%x ret %d\n",
14610 __func__, port_id, ret);
14611
14612 ret = -EINVAL;
14613 goto done;
14614 }
14615
14616 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
14617 if (msm_bedais[be_idx].port_id == port_id)
14618 break;
14619 }
14620 if (be_idx >= MSM_BACKEND_DAI_MAX) {
14621 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
14622
14623 ret = -EINVAL;
14624 goto done;
14625 }
14626
14627 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
14628 MSM_FRONTEND_DAI_MM_SIZE) {
14629 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
14630 copp = session_copp_map[i]
14631 [session_type][be_idx];
14632 if (test_bit(idx, &copp))
14633 break;
14634 }
14635 if (idx >= MAX_COPPS_PER_PORT)
14636 continue;
14637 else
14638 break;
14639 }
14640 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
14641 pr_err("%s: Invalid FE, exiting\n", __func__);
14642
14643 ret = -EINVAL;
14644 goto done;
14645 }
14646 *copp_idx = idx;
14647 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
14648
14649done:
14650 return ret;
14651}
14652
14653static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
14654 const char *prefix, int *port_id)
14655{
14656 int ret = 0;
14657
14658 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
14659
14660 /*
14661 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
14662 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
14663 * and compare the string with the backend name to derive the port id.
14664 */
14665 if (!strcmp(kcontrol->id.name + strlen(prefix),
14666 "SLIMBUS_0")) {
14667 *port_id = SLIMBUS_0_TX;
14668 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14669 "TERT_MI2S")) {
14670 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
14671 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14672 "INT3_MI2S")) {
14673 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Sachin Mohan Gadag8c6e2db2018-07-16 19:53:19 +053014674 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
14675 "PRIMARY_TDM")) {
14676 *port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014677 } else {
14678 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
14679 __func__, kcontrol->id.name);
14680
14681 ret = -EINVAL;
14682 goto done;
14683 }
14684 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
14685 __func__, kcontrol->id.name, *port_id);
14686
14687done:
14688 return ret;
14689}
14690
14691static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
14692 struct snd_ctl_elem_value *ucontrol)
14693{
14694 int ret = 0;
14695 struct sound_focus_param soundFocusData;
14696 int port_id, copp_idx;
14697
14698 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14699 "Sound Focus Audio Tx ", &port_id);
14700 if (ret != 0) {
14701 pr_err("%s: Error in deriving port id, err=%d\n",
14702 __func__, ret);
14703
14704 ret = -EINVAL;
14705 goto done;
14706 }
14707
14708 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14709 &copp_idx);
14710 if (ret) {
14711 pr_err("%s: Could not get copp idx for port_id=%d\n",
14712 __func__, port_id);
14713
14714 ret = -EINVAL;
14715 goto done;
14716 }
14717
14718 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
14719 sizeof(struct sound_focus_param));
14720
14721 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
14722 if (ret) {
14723 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
14724 __func__, ret);
14725
14726 ret = -EINVAL;
14727 goto done;
14728 }
14729
14730done:
14731 return ret;
14732}
14733
14734static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
14735 struct snd_ctl_elem_value *ucontrol)
14736{
14737 int ret = 0;
14738 struct sound_focus_param soundFocusData;
14739 int port_id, copp_idx;
14740
14741 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14742 "Sound Focus Audio Tx ", &port_id);
14743 if (ret) {
14744 pr_err("%s: Error in deriving port id, err=%d\n",
14745 __func__, ret);
14746
14747 ret = -EINVAL;
14748 goto done;
14749 }
14750
14751 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14752 &copp_idx);
14753 if (ret) {
14754 pr_err("%s: Could not get copp idx for port_id=%d\n",
14755 __func__, port_id);
14756
14757 ret = -EINVAL;
14758 goto done;
14759 }
14760
14761 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
14762 if (ret) {
14763 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
14764 __func__, ret);
14765
14766 ret = -EINVAL;
14767 goto done;
14768 }
14769
14770 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
14771 sizeof(struct sound_focus_param));
14772
14773done:
14774 return ret;
14775}
14776
14777static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
14778 struct snd_ctl_elem_value *ucontrol)
14779{
14780 int ret = 0;
14781 struct source_tracking_param sourceTrackingData;
14782 int port_id, copp_idx;
14783
14784 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
14785 "Source Tracking Audio Tx ", &port_id);
14786 if (ret) {
14787 pr_err("%s: Error in deriving port id, err=%d\n",
14788 __func__, ret);
14789
14790 ret = -EINVAL;
14791 goto done;
14792 }
14793
14794 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
14795 &copp_idx);
14796 if (ret) {
14797 pr_err("%s: Could not get copp idx for port_id=%d\n",
14798 __func__, port_id);
14799
14800 ret = -EINVAL;
14801 goto done;
14802 }
14803
14804 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
14805 if (ret) {
14806 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
14807 __func__, ret);
14808
14809 ret = -EINVAL;
14810 goto done;
14811 }
14812
14813 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
14814 sizeof(struct source_tracking_param));
14815
14816done:
14817 return ret;
14818}
14819
14820static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
14821 {
14822 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14823 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14824 .name = "Sound Focus Voice Tx SLIMBUS_0",
14825 .info = msm_sound_focus_info,
14826 .get = msm_voice_sound_focus_get,
14827 .put = msm_voice_sound_focus_put,
14828 },
14829 {
14830 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14831 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14832 .name = "Source Tracking Voice Tx SLIMBUS_0",
14833 .info = msm_source_tracking_info,
14834 .get = msm_voice_source_tracking_get,
14835 },
14836 {
14837 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14838 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14839 .name = "Sound Focus Audio Tx SLIMBUS_0",
14840 .info = msm_sound_focus_info,
14841 .get = msm_audio_sound_focus_get,
14842 .put = msm_audio_sound_focus_put,
14843 },
14844 {
14845 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14846 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14847 .name = "Source Tracking Audio Tx SLIMBUS_0",
14848 .info = msm_source_tracking_info,
14849 .get = msm_audio_source_tracking_get,
14850 },
14851 {
14852 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14853 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14854 .name = "Sound Focus Voice Tx TERT_MI2S",
14855 .info = msm_sound_focus_info,
14856 .get = msm_voice_sound_focus_get,
14857 .put = msm_voice_sound_focus_put,
14858 },
14859 {
14860 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14861 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14862 .name = "Source Tracking Voice Tx TERT_MI2S",
14863 .info = msm_source_tracking_info,
14864 .get = msm_voice_source_tracking_get,
14865 },
14866 {
14867 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14868 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14869 .name = "Sound Focus Audio Tx TERT_MI2S",
14870 .info = msm_sound_focus_info,
14871 .get = msm_audio_sound_focus_get,
14872 .put = msm_audio_sound_focus_put,
14873 },
14874 {
14875 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14876 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14877 .name = "Source Tracking Audio Tx TERT_MI2S",
14878 .info = msm_source_tracking_info,
14879 .get = msm_audio_source_tracking_get,
14880 },
14881 {
14882 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14883 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14884 .name = "Sound Focus Voice Tx INT3_MI2S",
14885 .info = msm_sound_focus_info,
14886 .get = msm_voice_sound_focus_get,
14887 .put = msm_voice_sound_focus_put,
14888 },
14889 {
14890 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14891 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14892 .name = "Source Tracking Voice Tx INT3_MI2S",
14893 .info = msm_source_tracking_info,
14894 .get = msm_voice_source_tracking_get,
14895 },
14896 {
14897 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14898 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14899 .name = "Sound Focus Audio Tx INT3_MI2S",
14900 .info = msm_sound_focus_info,
14901 .get = msm_audio_sound_focus_get,
14902 .put = msm_audio_sound_focus_put,
14903 },
14904 {
14905 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14906 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14907 .name = "Source Tracking Audio Tx INT3_MI2S",
14908 .info = msm_source_tracking_info,
14909 .get = msm_audio_source_tracking_get,
14910 },
Sachin Mohan Gadag8c6e2db2018-07-16 19:53:19 +053014911 {
14912 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
14913 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14914 .name = "Sound Focus Audio Tx PRIMARY_TDM",
14915 .info = msm_sound_focus_info,
14916 .get = msm_audio_sound_focus_get,
14917 .put = msm_audio_sound_focus_put,
14918 },
14919 {
14920 .access = SNDRV_CTL_ELEM_ACCESS_READ,
14921 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
14922 .name = "Source Tracking Audio Tx PRIMARY_TDM",
14923 .info = msm_source_tracking_info,
14924 .get = msm_audio_source_tracking_get,
14925 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014926};
14927
14928static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
14929 struct snd_ctl_elem_value *ucontrol)
14930{
14931 int ret = 0;
14932 int item;
14933 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
14934
14935 pr_debug("%s item is %d\n", __func__,
14936 ucontrol->value.enumerated.item[0]);
14937 mutex_lock(&routing_lock);
14938 item = ucontrol->value.enumerated.item[0];
14939 if (item < e->items) {
14940 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
14941 __func__, e->shift_l, e->values[item]);
14942 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
14943 e->values[item] < MSM_BACKEND_DAI_MAX)
14944 /* Enable feedback TX path */
14945 ret = afe_spk_prot_feed_back_cfg(
14946 msm_bedais[e->values[item]].port_id,
14947 msm_bedais[e->shift_l].port_id, 1, 0, 1);
14948 else {
14949 pr_debug("%s values are out of range item %d\n",
14950 __func__, e->values[item]);
14951 /* Disable feedback TX path */
14952 if (e->values[item] == MSM_BACKEND_DAI_MAX)
14953 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
14954 else
14955 ret = -EINVAL;
14956 }
14957 } else {
14958 pr_err("%s item value is out of range item\n", __func__);
14959 ret = -EINVAL;
14960 }
14961 mutex_unlock(&routing_lock);
14962 return ret;
14963}
14964
14965static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
14966 struct snd_ctl_elem_value *ucontrol)
14967{
14968 int ret = 0;
14969 int item;
14970 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
14971
14972 pr_debug("%s item is %d\n", __func__,
14973 ucontrol->value.enumerated.item[0]);
14974 mutex_lock(&routing_lock);
14975 item = ucontrol->value.enumerated.item[0];
14976 if (item < e->items) {
14977 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
14978 __func__, e->shift_l, e->values[item]);
14979 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
14980 e->values[item] < MSM_BACKEND_DAI_MAX)
14981 /* Enable feedback TX path */
14982 ret = afe_spk_prot_feed_back_cfg(
14983 msm_bedais[e->values[item]].port_id,
14984 msm_bedais[e->shift_l].port_id,
14985 1, 1, 1);
14986 else {
14987 pr_debug("%s values are out of range item %d\n",
14988 __func__, e->values[item]);
14989 /* Disable feedback TX path */
14990 if (e->values[item] == MSM_BACKEND_DAI_MAX)
14991 ret = afe_spk_prot_feed_back_cfg(0,
14992 0, 0, 0, 0);
14993 else
14994 ret = -EINVAL;
14995 }
14996 } else {
14997 pr_err("%s item value is out of range item\n", __func__);
14998 ret = -EINVAL;
14999 }
15000 mutex_unlock(&routing_lock);
15001 return ret;
15002}
15003
15004static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
15005 struct snd_ctl_elem_value *ucontrol)
15006{
15007 pr_debug("%s\n", __func__);
15008 return 0;
15009}
15010
15011static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
15012 struct snd_ctl_elem_value *ucontrol)
15013{
15014 pr_debug("%s\n", __func__);
15015 ucontrol->value.enumerated.item[0] = 0;
15016 return 0;
15017}
15018
15019static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
15020 "ZERO", "SLIM4_TX"
15021};
15022
15023static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
15024 "ZERO", "SLIM4_TX"
15025};
15026
15027static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
15028 "ZERO", "SENARY_TX"
15029};
15030
15031static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
15032 "ZERO", "INT5_MI2S_TX"
15033};
15034
15035static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
15036 "ZERO", "INT5_MI2S_TX"
15037};
15038
15039static const int const slim0_rx_vi_fb_tx_lch_value[] = {
15040 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15041};
15042
15043static const int const slim0_rx_vi_fb_tx_rch_value[] = {
15044 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
15045};
15046
15047static const int const mi2s_rx_vi_fb_tx_value[] = {
15048 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
15049};
15050
15051static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
15052 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15053};
15054
15055static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
15056 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
15057};
15058
15059static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015060 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015061 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
15062 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
15063
15064static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015065 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015066 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
15067 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
15068
15069static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015070 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015071 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
15072 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
15073
15074static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015075 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015076 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
15077 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
15078 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
15079
15080static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
Soumya Managoli83eac4f2019-07-23 17:50:08 +053015081 SOC_VALUE_ENUM_DOUBLE(SND_SOC_NOPM, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015082 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
15083 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
15084 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
15085
15086static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
15087 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
15088 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
15089 spkr_prot_put_vi_lch_port);
15090
15091static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
15092 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
15093 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
15094 spkr_prot_put_vi_rch_port);
15095
15096static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
15097 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
15098 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
15099 spkr_prot_put_vi_lch_port);
15100
15101static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
15102 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
15103 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
15104 spkr_prot_put_vi_lch_port);
15105
15106static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
15107 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
15108 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
15109 spkr_prot_put_vi_rch_port);
15110
15111static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
15112 /* Frontend AIF */
15113 /* Widget name equals to Front-End DAI name<Need confirmation>,
15114 * Stream name must contains substring of front-end dai name
15115 */
15116 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
15117 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
15118 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
15119 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
15120 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
15121 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
15122 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
15123 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
15124 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
15125 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
15126 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
15127 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
15128 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
15129 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
15130 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
15131 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
15132 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Ramjee Singh29973d72020-03-06 09:21:43 +053015133 SND_SOC_DAPM_AIF_IN("MM_DL30", "MultiMedia30 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015134 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
15135 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
15136 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
15137 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
15138 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
15139 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
15140 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
15141 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
15142 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053015143 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053015144 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015145 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
15146 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
15147 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
15148 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Meng Wangbe8194e2018-04-25 10:40:01 +080015149 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
15150 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015151 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
15152 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
15153 "VoiceMMode1 Playback", 0, 0, 0, 0),
15154 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
15155 "VoiceMMode1 Capture", 0, 0, 0, 0),
15156 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
15157 "VoiceMMode2 Playback", 0, 0, 0, 0),
15158 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
15159 "VoiceMMode2 Capture", 0, 0, 0, 0),
15160 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
15161 0, 0, 0, 0),
15162 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
15163 0, 0, 0, 0),
15164 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
15165 0, 0, 0, 0),
15166 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
15167 0, 0, 0, 0),
15168 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
15169 0, 0, 0, 0),
15170 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
15171 0, 0, 0, 0),
15172 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
15173 0, 0, 0, 0),
15174 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
15175 0, 0, 0, 0),
15176 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
15177 0, 0, 0, 0),
15178 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
15179 0, 0, 0, 0),
15180 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
15181 0, 0, 0, 0),
15182 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
15183 0, 0, 0, 0),
15184 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
15185 0, 0, 0, 0),
15186 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
15187 0, 0, 0, 0),
15188 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
15189 0, 0, 0, 0),
15190 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
15191 0, 0, 0, 0),
15192 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
15193 0, 0, 0, 0),
15194 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
15195 0, 0, 0, 0),
15196 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
15197 0, 0, 0, 0),
15198 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
15199 0, 0, 0, 0),
15200 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
15201 0, 0, 0, 0),
15202 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
15203 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
15204 0, 0, 0, 0),
15205 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
15206 "INT0 MI2S_RX Hostless Playback",
15207 0, 0, 0, 0),
15208 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
15209 "INT4 MI2S_RX Hostless Playback",
15210 0, 0, 0, 0),
15211 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
15212 "Primary MI2S_RX Hostless Playback",
15213 0, 0, 0, 0),
15214 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
15215 "Secondary MI2S_RX Hostless Playback",
15216 0, 0, 0, 0),
15217 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
15218 "Tertiary MI2S_RX Hostless Playback",
15219 0, 0, 0, 0),
15220 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
15221 "Quaternary MI2S_RX Hostless Playback",
15222 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015223 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
15224 "Quinary MI2S_RX Hostless Playback",
15225 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015226
15227 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
15228 0, 0, 0, 0),
15229 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
15230 0, 0, 0, 0),
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080015231 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
15232 0, 0, 0, 0),
15233 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
15234 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015235 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
15236 0, 0, 0, 0),
15237 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
15238 "INT3 MI2S_TX Hostless Capture",
15239 0, 0, 0, 0),
15240 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
15241 "Tertiary MI2S_TX Hostless Capture",
15242 0, 0, 0, 0),
15243 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
15244 "Secondary MI2S_TX Hostless Capture",
15245 0, 0, 0, 0),
15246 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
15247 "Primary MI2S_TX Hostless Capture",
15248 0, 0, 0, 0),
15249 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
15250 0, 0, 0, 0),
15251 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
15252 0, 0, 0, 0),
15253 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
15254 "Quaternary MI2S_TX Hostless Capture",
15255 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015256 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
15257 "Quinary MI2S_TX Hostless Capture",
15258 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015259
15260 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
15261 "Primary TDM0 Hostless Playback",
15262 0, 0, 0, 0),
15263 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
15264 "Primary TDM0 Hostless Capture",
15265 0, 0, 0, 0),
15266 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
15267 "Primary TDM1 Hostless Playback",
15268 0, 0, 0, 0),
15269 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
15270 "Primary TDM1 Hostless Capture",
15271 0, 0, 0, 0),
15272 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
15273 "Primary TDM2 Hostless Playback",
15274 0, 0, 0, 0),
15275 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
15276 "Primary TDM2 Hostless Capture",
15277 0, 0, 0, 0),
15278 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
15279 "Primary TDM3 Hostless Playback",
15280 0, 0, 0, 0),
15281 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
15282 "Primary TDM3 Hostless Capture",
15283 0, 0, 0, 0),
15284 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
15285 "Primary TDM4 Hostless Playback",
15286 0, 0, 0, 0),
15287 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
15288 "Primary TDM4 Hostless Capture",
15289 0, 0, 0, 0),
15290 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
15291 "Primary TDM5 Hostless Playback",
15292 0, 0, 0, 0),
15293 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
15294 "Primary TDM5 Hostless Capture",
15295 0, 0, 0, 0),
15296 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
15297 "Primary TDM6 Hostless Playback",
15298 0, 0, 0, 0),
15299 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
15300 "Primary TDM6 Hostless Capture",
15301 0, 0, 0, 0),
15302 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
15303 "Primary TDM7 Hostless Playback",
15304 0, 0, 0, 0),
15305 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
15306 "Primary TDM7 Hostless Capture",
15307 0, 0, 0, 0),
15308 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
15309 "Secondary TDM0 Hostless Playback",
15310 0, 0, 0, 0),
15311 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
15312 "Secondary TDM0 Hostless Capture",
15313 0, 0, 0, 0),
15314 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
15315 "Secondary TDM1 Hostless Playback",
15316 0, 0, 0, 0),
15317 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
15318 "Secondary TDM1 Hostless Capture",
15319 0, 0, 0, 0),
15320 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
15321 "Secondary TDM2 Hostless Playback",
15322 0, 0, 0, 0),
15323 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
15324 "Secondary TDM2 Hostless Capture",
15325 0, 0, 0, 0),
15326 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
15327 "Secondary TDM3 Hostless Playback",
15328 0, 0, 0, 0),
15329 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
15330 "Secondary TDM3 Hostless Capture",
15331 0, 0, 0, 0),
15332 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
15333 "Secondary TDM4 Hostless Playback",
15334 0, 0, 0, 0),
15335 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
15336 "Secondary TDM4 Hostless Capture",
15337 0, 0, 0, 0),
15338 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
15339 "Secondary TDM5 Hostless Playback",
15340 0, 0, 0, 0),
15341 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
15342 "Secondary TDM5 Hostless Capture",
15343 0, 0, 0, 0),
15344 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
15345 "Secondary TDM6 Hostless Playback",
15346 0, 0, 0, 0),
15347 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
15348 "Secondary TDM6 Hostless Capture",
15349 0, 0, 0, 0),
15350 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
15351 "Secondary TDM7 Hostless Playback",
15352 0, 0, 0, 0),
15353 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
15354 "Secondary TDM7 Hostless Capture",
15355 0, 0, 0, 0),
15356 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
15357 "Tertiary TDM0 Hostless Playback",
15358 0, 0, 0, 0),
15359 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
15360 "Tertiary TDM0 Hostless Capture",
15361 0, 0, 0, 0),
15362 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
15363 "Tertiary TDM1 Hostless Playback",
15364 0, 0, 0, 0),
15365 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
15366 "Tertiary TDM1 Hostless Capture",
15367 0, 0, 0, 0),
15368 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
15369 "Tertiary TDM2 Hostless Playback",
15370 0, 0, 0, 0),
15371 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
15372 "Tertiary TDM2 Hostless Capture",
15373 0, 0, 0, 0),
15374 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
15375 "Tertiary TDM3 Hostless Playback",
15376 0, 0, 0, 0),
15377 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
15378 "Tertiary TDM3 Hostless Capture",
15379 0, 0, 0, 0),
15380 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
15381 "Tertiary TDM4 Hostless Playback",
15382 0, 0, 0, 0),
15383 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
15384 "Tertiary TDM4 Hostless Capture",
15385 0, 0, 0, 0),
15386 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
15387 "Tertiary TDM5 Hostless Playback",
15388 0, 0, 0, 0),
15389 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
15390 "Tertiary TDM5 Hostless Capture",
15391 0, 0, 0, 0),
15392 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
15393 "Tertiary TDM6 Hostless Playback",
15394 0, 0, 0, 0),
15395 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
15396 "Tertiary TDM6 Hostless Capture",
15397 0, 0, 0, 0),
15398 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
15399 "Tertiary TDM7 Hostless Playback",
15400 0, 0, 0, 0),
15401 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
15402 "Tertiary TDM7 Hostless Capture",
15403 0, 0, 0, 0),
15404 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
15405 "Quaternary TDM0 Hostless Playback",
15406 0, 0, 0, 0),
15407 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
15408 "Quaternary TDM0 Hostless Capture",
15409 0, 0, 0, 0),
15410 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
15411 "Quaternary TDM1 Hostless Playback",
15412 0, 0, 0, 0),
15413 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
15414 "Quaternary TDM1 Hostless Capture",
15415 0, 0, 0, 0),
15416 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
15417 "Quaternary TDM2 Hostless Playback",
15418 0, 0, 0, 0),
15419 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
15420 "Quaternary TDM2 Hostless Capture",
15421 0, 0, 0, 0),
15422 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
15423 "Quaternary TDM3 Hostless Playback",
15424 0, 0, 0, 0),
15425 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
15426 "Quaternary TDM3 Hostless Capture",
15427 0, 0, 0, 0),
15428 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
15429 "Quaternary TDM4 Hostless Playback",
15430 0, 0, 0, 0),
15431 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
15432 "Quaternary TDM4 Hostless Capture",
15433 0, 0, 0, 0),
15434 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
15435 "Quaternary TDM5 Hostless Playback",
15436 0, 0, 0, 0),
15437 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
15438 "Quaternary TDM5 Hostless Capture",
15439 0, 0, 0, 0),
15440 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
15441 "Quaternary TDM6 Hostless Playback",
15442 0, 0, 0, 0),
15443 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
15444 "Quaternary TDM6 Hostless Capture",
15445 0, 0, 0, 0),
15446 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
15447 "Quaternary TDM7 Hostless Playback",
15448 0, 0, 0, 0),
15449 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
15450 "Quaternary TDM7 Hostless Capture",
15451 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015452 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
15453 "Quinary TDM0 Hostless Playback",
15454 0, 0, 0, 0),
15455 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
15456 "Quinary TDM0 Hostless Capture",
15457 0, 0, 0, 0),
15458 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
15459 "Quinary TDM1 Hostless Playback",
15460 0, 0, 0, 0),
15461 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
15462 "Quinary TDM1 Hostless Capture",
15463 0, 0, 0, 0),
15464 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
15465 "Quinary TDM2 Hostless Playback",
15466 0, 0, 0, 0),
15467 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
15468 "Quinary TDM2 Hostless Capture",
15469 0, 0, 0, 0),
15470 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
15471 "Quinary TDM3 Hostless Playback",
15472 0, 0, 0, 0),
15473 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
15474 "Quinary TDM3 Hostless Capture",
15475 0, 0, 0, 0),
15476 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
15477 "Quinary TDM4 Hostless Playback",
15478 0, 0, 0, 0),
15479 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
15480 "Quinary TDM4 Hostless Capture",
15481 0, 0, 0, 0),
15482 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
15483 "Quinary TDM5 Hostless Playback",
15484 0, 0, 0, 0),
15485 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
15486 "Quinary TDM5 Hostless Capture",
15487 0, 0, 0, 0),
15488 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
15489 "Quinary TDM6 Hostless Playback",
15490 0, 0, 0, 0),
15491 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
15492 "Quinary TDM6 Hostless Capture",
15493 0, 0, 0, 0),
15494 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
15495 "Quinary TDM7 Hostless Playback",
15496 0, 0, 0, 0),
15497 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
15498 "Quinary TDM7 Hostless Capture",
15499 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015500
15501 /* LSM */
15502 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
15503 0, 0, 0, 0),
15504 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
15505 0, 0, 0, 0),
15506 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
15507 0, 0, 0, 0),
15508 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
15509 0, 0, 0, 0),
15510 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
15511 0, 0, 0, 0),
15512 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
15513 0, 0, 0, 0),
15514 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
15515 0, 0, 0, 0),
15516 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
15517 0, 0, 0, 0),
15518 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
15519 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
15520 /* Backend AIF */
15521 /* Stream name equals to backend dai link stream name */
15522 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
15523 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
15524 0, 0, 0, 0),
15525 SND_SOC_DAPM_AIF_OUT("SPDIF_RX", "SPDIF Playback", 0, 0, 0, 0),
15526 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
15527 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
15528 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
15529 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
15530 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
15531 0, 0, 0, 0),
15532 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
15533 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
15534 0, 0, 0, 0),
15535 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
15536 0, 0, 0, 0),
15537 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
15538 0, 0, 0, 0),
15539 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
15540 "Secondary MI2S Playback SD1",
15541 0, 0, 0, 0),
15542 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
15543 0, 0, 0, 0),
15544 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
15545 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015546 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
15547 0, 0, 0, 0),
15548 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
15549 0, 0, 0, 0),
15550 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
15551 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015552 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
15553 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015554 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
15555 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015556 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
15557 0, 0, 0, 0),
15558 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
15559 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
15560 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
15561 0, 0, 0, 0),
15562 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
15563 0, 0, 0, 0),
15564 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
15565 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053015566 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
15567 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015568 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
15569 0, 0, 0, 0),
15570 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
15571 0, 0, 0, 0),
15572 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
15573 0, 0, 0, 0),
15574 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
15575 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
15576 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
15577 0, 0, 0, 0),
15578 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
15579 0, 0, 0, 0),
15580 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
15581 0, 0, 0, 0),
15582 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
15583 0, 0, 0, 0),
15584 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
15585 0, 0, 0, 0),
15586 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
15587 0, 0, 0, 0),
15588 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
15589 0, 0, 0, 0),
15590 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
15591 0, 0, 0, 0),
15592 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
15593 0, 0, 0, 0),
15594 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
15595 0, 0, 0, 0),
15596 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
15597 0, 0, 0, 0),
15598 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
15599 0, 0, 0, 0),
15600 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
15601 0, 0, 0, 0),
15602 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
15603 0, 0, 0, 0),
15604 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
15605 0, 0, 0, 0),
15606 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
15607 0, 0, 0, 0),
15608 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
15609 0, 0, 0, 0),
15610 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
15611 0, 0, 0, 0),
15612 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
15613 0, 0, 0, 0),
15614 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
15615 0, 0, 0, 0),
15616 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
15617 0, 0, 0, 0),
15618 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
15619 0, 0, 0, 0),
15620 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
15621 0, 0, 0, 0),
15622 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
15623 0, 0, 0, 0),
15624 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
15625 0, 0, 0, 0),
15626 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
15627 0, 0, 0, 0),
15628 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
15629 0, 0, 0, 0),
15630 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
15631 0, 0, 0, 0),
15632 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
15633 0, 0, 0, 0),
15634 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
15635 0, 0, 0, 0),
15636 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
15637 0, 0, 0, 0),
15638 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
15639 0, 0, 0, 0),
15640 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
15641 0, 0, 0, 0),
15642 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
15643 0, 0, 0, 0),
15644 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
15645 0, 0, 0, 0),
15646 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
15647 0, 0, 0, 0),
15648 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
15649 0, 0, 0, 0),
15650 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
15651 0, 0, 0, 0),
15652 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
15653 0, 0, 0, 0),
15654 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
15655 0, 0, 0, 0),
15656 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
15657 0, 0, 0, 0),
15658 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
15659 0, 0, 0, 0),
15660 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
15661 0, 0, 0, 0),
15662 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
15663 0, 0, 0, 0),
15664 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
15665 0, 0, 0, 0),
15666 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
15667 0, 0, 0, 0),
15668 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
15669 0, 0, 0, 0),
15670 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
15671 0, 0, 0, 0),
15672 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
15673 0, 0, 0, 0),
15674 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
15675 0, 0, 0, 0),
15676 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
15677 0, 0, 0, 0),
15678 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
15679 0, 0, 0, 0),
15680 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
15681 0, 0, 0, 0),
15682 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
15683 0, 0, 0, 0),
15684 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
15685 0, 0, 0, 0),
15686 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
15687 0, 0, 0, 0),
15688 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
15689 0, 0, 0, 0),
15690 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
15691 0, 0, 0, 0),
15692 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
15693 0, 0, 0, 0),
15694 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
15695 0, 0, 0, 0),
15696 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
15697 0, 0, 0, 0),
15698 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
15699 0, 0, 0, 0),
15700 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
15701 0, 0, 0, 0),
15702 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
15703 0, 0, 0, 0),
15704 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
15705 0, 0, 0, 0),
15706 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
15707 0, 0, 0, 0),
15708 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
15709 0, 0, 0, 0),
15710 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
15711 0, 0, 0, 0),
15712 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
15713 0, 0, 0, 0),
15714 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
15715 0, 0, 0, 0),
15716 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
15717 0, 0, 0, 0),
15718 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
15719 0, 0, 0, 0),
15720 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
15721 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015722 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
15723 0, 0, 0, 0),
15724 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
15725 0, 0, 0, 0),
15726 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
15727 0, 0, 0, 0),
15728 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
15729 0, 0, 0, 0),
15730 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
15731 0, 0, 0, 0),
15732 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
15733 0, 0, 0, 0),
15734 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
15735 0, 0, 0, 0),
15736 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
15737 0, 0, 0, 0),
15738 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
15739 0, 0, 0, 0),
15740 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
15741 0, 0, 0, 0),
15742 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
15743 0, 0, 0, 0),
15744 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
15745 0, 0, 0, 0),
15746 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
15747 0, 0, 0, 0),
15748 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
15749 0, 0, 0, 0),
15750 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
15751 0, 0, 0, 0),
15752 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
15753 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015754 /* incall */
15755 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
15756 0, 0, 0, 0),
15757 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
15758 0, 0, 0, 0),
15759 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
15760 0, 0, 0, 0),
15761 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
15762 0, 0, 0, 0),
15763 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
15764 0, 0, 0, 0),
15765 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
15766 0, 0, 0, 0),
15767 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
15768 0, 0, 0, 0),
15769 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
15770 0, 0, 0, 0),
15771 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
15772
15773 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
15774 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
15775 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
15776 0, 0, 0, 0),
15777 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
15778 0, 0, 0, 0),
15779 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
15780 0, 0, 0, 0),
15781 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
15782 0, 0, 0, 0),
15783 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
15784 0, 0, 0, 0),
15785 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
15786 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053015787 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
15788 0, 0, 0, 0),
15789 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
15790 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
15792 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
15793 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
15794 0, 0, 0, 0),
15795 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
15796 0, 0, 0, 0),
15797 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
15798 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
15799 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
15800 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
15801 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
15802 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
15803 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
15804 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
15805 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
15806 /* In- call recording */
15807 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
15808 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
Raja Mallik425e1d32018-05-20 19:21:10 +053015809 SND_SOC_DAPM_AIF_IN("AFE_LOOPBACK_TX", "AFE Loopback Capture",
15810 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015811 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
15812 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
15813
15814 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
15815 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
15816 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
15817 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
15818
15819 /* Switch Definitions */
15820 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
15821 &slim_fm_switch_mixer_controls),
15822 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
15823 &slim1_fm_switch_mixer_controls),
15824 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
15825 &slim3_fm_switch_mixer_controls),
15826 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
15827 &slim4_fm_switch_mixer_controls),
15828 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
15829 &slim6_fm_switch_mixer_controls),
15830 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15831 &pcm_rx_switch_mixer_controls),
15832 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15833 &int0_mi2s_rx_switch_mixer_controls),
15834 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15835 &int4_mi2s_rx_switch_mixer_controls),
15836 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15837 &pri_mi2s_rx_switch_mixer_controls),
15838 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15839 &sec_mi2s_rx_switch_mixer_controls),
15840 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15841 &tert_mi2s_rx_switch_mixer_controls),
15842 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15843 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053015844 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
15845 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015846 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
15847 &hfp_pri_aux_switch_mixer_controls),
15848 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
15849 &hfp_aux_switch_mixer_controls),
15850 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
15851 &hfp_int_switch_mixer_controls),
15852 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
15853 &hfp_slim7_switch_mixer_controls),
15854 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
15855 &usb_switch_mixer_controls),
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080015856 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
15857 &a2dp_slim7_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015858
15859 /* Mixer definitions */
15860 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15861 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
15862 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15863 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
15864 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15865 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
15866 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15867 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
15868 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15869 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
15870 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15871 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
15872 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
15873 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
15874 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
15875 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
15876 SND_SOC_DAPM_MIXER("SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15877 spdif_rx_mixer_controls, ARRAY_SIZE(spdif_rx_mixer_controls)),
15878 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15879 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
15880 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15881 quaternary_mi2s_rx_mixer_controls,
15882 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
15883 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15884 tertiary_mi2s_rx_mixer_controls,
15885 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
15886 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15887 secondary_mi2s_rx_mixer_controls,
15888 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
15889 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15890 secondary_mi2s_rx2_mixer_controls,
15891 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
15892 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15893 primary_mi2s_rx_mixer_controls,
15894 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
15895 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15896 int0_mi2s_rx_mixer_controls,
15897 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
15898 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15899 int4_mi2s_rx_mixer_controls,
15900 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
15901 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
15902 quinary_mi2s_rx_mixer_controls,
15903 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
15904 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15905 pri_tdm_rx_0_mixer_controls,
15906 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
15907 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15908 pri_tdm_rx_1_mixer_controls,
15909 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
15910 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15911 pri_tdm_rx_2_mixer_controls,
15912 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
15913 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15914 pri_tdm_rx_3_mixer_controls,
15915 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
15916 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15917 pri_tdm_tx_0_mixer_controls,
15918 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
15919 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15920 sec_tdm_rx_0_mixer_controls,
15921 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
15922 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15923 sec_tdm_rx_1_mixer_controls,
15924 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
15925 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15926 sec_tdm_rx_2_mixer_controls,
15927 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
15928 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15929 sec_tdm_rx_3_mixer_controls,
15930 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
15931 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15932 sec_tdm_tx_0_mixer_controls,
15933 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
15934 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15935 tert_tdm_rx_0_mixer_controls,
15936 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
15937 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15938 tert_tdm_tx_0_mixer_controls,
15939 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
15940 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15941 tert_tdm_rx_1_mixer_controls,
15942 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
15943 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15944 tert_tdm_rx_2_mixer_controls,
15945 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
15946 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15947 tert_tdm_rx_3_mixer_controls,
15948 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
15949 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
15950 tert_tdm_rx_4_mixer_controls,
15951 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
15952 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15953 quat_tdm_rx_0_mixer_controls,
15954 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
15955 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15956 quat_tdm_tx_0_mixer_controls,
15957 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
15958 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15959 quat_tdm_rx_1_mixer_controls,
15960 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
15961 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15962 quat_tdm_rx_2_mixer_controls,
15963 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
15964 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15965 quat_tdm_rx_3_mixer_controls,
15966 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053015967 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15968 quin_tdm_rx_0_mixer_controls,
15969 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
15970 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
15971 quin_tdm_tx_0_mixer_controls,
15972 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
15973 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
15974 quin_tdm_rx_1_mixer_controls,
15975 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
15976 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
15977 quin_tdm_rx_2_mixer_controls,
15978 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
15979 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
15980 quin_tdm_rx_3_mixer_controls,
15981 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015982 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
15983 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
15984 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
15985 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
15986 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
15987 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
15988 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
15989 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
15990 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
15991 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
15992 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
15993 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
15994 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
15995 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
15996 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
15997 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053015998 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
15999 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053016000 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
16001 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016002 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
16003 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
16004 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
16005 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
16006 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
16007 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
16008 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
16009 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016010 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
16011 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
16012 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
16013 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016014 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16015 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
16016 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16017 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
16018 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16019 tert_auxpcm_rx_mixer_controls,
16020 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
16021 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16022 quat_auxpcm_rx_mixer_controls,
16023 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016024 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16025 quin_auxpcm_rx_mixer_controls,
16026 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016027 /* incall */
16028 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
16029 incall_music_delivery_mixer_controls,
16030 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
16031 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
16032 incall_music2_delivery_mixer_controls,
16033 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
16034 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16035 slimbus_4_rx_mixer_controls,
16036 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
16037 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16038 slimbus_6_rx_mixer_controls,
16039 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
16040 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16041 usb_audio_rx_mixer_controls,
16042 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
16043 /* Voice Mixer */
16044 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
16045 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
16046 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
16047 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
16048 SND_SOC_NOPM, 0, 0,
16049 sec_i2s_rx_voice_mixer_controls,
16050 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
16051 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
16052 SND_SOC_NOPM, 0, 0,
16053 sec_mi2s_rx_voice_mixer_controls,
16054 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
16055 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
16056 SND_SOC_NOPM, 0, 0,
16057 slimbus_rx_voice_mixer_controls,
16058 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
16059 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
16060 SND_SOC_NOPM, 0, 0,
16061 bt_sco_rx_voice_mixer_controls,
16062 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
16063 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
16064 SND_SOC_NOPM, 0, 0,
16065 afe_pcm_rx_voice_mixer_controls,
16066 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
16067 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
16068 SND_SOC_NOPM, 0, 0,
16069 aux_pcm_rx_voice_mixer_controls,
16070 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
16071 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
16072 SND_SOC_NOPM, 0, 0,
16073 sec_aux_pcm_rx_voice_mixer_controls,
16074 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
16075 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
16076 SND_SOC_NOPM, 0, 0,
16077 tert_aux_pcm_rx_voice_mixer_controls,
16078 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
16079 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
16080 SND_SOC_NOPM, 0, 0,
16081 quat_aux_pcm_rx_voice_mixer_controls,
16082 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016083 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
16084 SND_SOC_NOPM, 0, 0,
16085 quin_aux_pcm_rx_voice_mixer_controls,
16086 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016087 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
16088 SND_SOC_NOPM, 0, 0,
16089 hdmi_rx_voice_mixer_controls,
16090 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
16091 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
16092 SND_SOC_NOPM, 0, 0,
16093 mi2s_rx_voice_mixer_controls,
16094 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
16095 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
16096 SND_SOC_NOPM, 0, 0,
16097 pri_mi2s_rx_voice_mixer_controls,
16098 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
16099 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
16100 SND_SOC_NOPM, 0, 0,
16101 int0_mi2s_rx_voice_mixer_controls,
16102 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
16103 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
16104 SND_SOC_NOPM, 0, 0,
16105 int4_mi2s_rx_voice_mixer_controls,
16106 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
16107 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
16108 SND_SOC_NOPM, 0, 0,
16109 tert_mi2s_rx_voice_mixer_controls,
16110 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
16111 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
16112 SND_SOC_NOPM, 0, 0,
16113 quat_mi2s_rx_voice_mixer_controls,
16114 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
16115 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
16116 SND_SOC_NOPM, 0, 0,
16117 quin_mi2s_rx_voice_mixer_controls,
16118 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
Raja Mallik321d5712018-05-04 17:22:11 +053016119 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer",
16120 SND_SOC_NOPM, 0, 0,
16121 pri_tdm_rx_0_voice_mixer_controls,
16122 ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)),
16123 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer",
16124 SND_SOC_NOPM, 0, 0,
16125 pri_tdm_rx_1_voice_mixer_controls,
16126 ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)),
16127 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer",
16128 SND_SOC_NOPM, 0, 0,
16129 pri_tdm_rx_2_voice_mixer_controls,
16130 ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)),
16131 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer",
16132 SND_SOC_NOPM, 0, 0,
16133 pri_tdm_rx_3_voice_mixer_controls,
16134 ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016135 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
16136 SND_SOC_NOPM, 0, 0,
16137 quat_tdm_rx_2_voice_mixer_controls,
16138 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016139 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
16140 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
16141 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016142 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
16143 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
16144 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
16145 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
16146 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
16147 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
16148 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16149 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
16150 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16151 int_bt_a2dp_rx_mixer_controls,
16152 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
16153 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16154 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
16155 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
16156 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
16157 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16158 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
16159 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16160 tx_voice2_stub_mixer_controls,
16161 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
16162 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
16163 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
16164 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
16165 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
16166 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
16167 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
16168 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16169 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
16170 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
16171 SND_SOC_NOPM, 0, 0,
16172 slimbus_6_rx_voice_mixer_controls,
16173 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
16174 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16175 slimbus_7_rx_voice_mixer_controls,
16176 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
16177 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
16178 slimbus_8_rx_voice_mixer_controls,
16179 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
16180 /* port mixer */
16181 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
16182 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
16183 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
16184 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
16185 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
16186 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
16187 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
16188 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
16189 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
16190 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
16191 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
16192 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
16193 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
16194 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
16195 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016196 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
16197 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
16198 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016199 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16200 sbus_1_rx_port_mixer_controls,
16201 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
16202 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16203 bt_sco_rx_port_mixer_controls,
16204 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
16205 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
16206 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
16207 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
16208 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
16209 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
16210 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
16211 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
16212 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
16213 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
16214 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
16215 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
16216 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
16217 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
16218 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
16219 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
16220 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
16221 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
16222 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
16223 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16224 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
16225 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16226 primary_mi2s_rx_port_mixer_controls,
16227 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
16228 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16229 sec_mi2s_rx_port_mixer_controls,
16230 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
16231 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16232 tert_mi2s_rx_port_mixer_controls,
16233 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
16234 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16235 quat_mi2s_rx_port_mixer_controls,
16236 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016237 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16238 quin_mi2s_rx_port_mixer_controls,
16239 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016240 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16241 pri_tdm_rx_0_port_mixer_controls,
16242 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
16243 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16244 pri_tdm_rx_1_port_mixer_controls,
16245 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
16246 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16247 pri_tdm_rx_2_port_mixer_controls,
16248 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
16249 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16250 pri_tdm_rx_3_port_mixer_controls,
16251 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
16252 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16253 sec_tdm_rx_0_port_mixer_controls,
16254 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
16255 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16256 sec_tdm_rx_1_port_mixer_controls,
16257 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
16258 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16259 sec_tdm_rx_2_port_mixer_controls,
16260 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
16261 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16262 sec_tdm_rx_3_port_mixer_controls,
16263 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
16264 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16265 tert_tdm_rx_0_port_mixer_controls,
16266 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
16267 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16268 tert_tdm_rx_1_port_mixer_controls,
16269 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
16270 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16271 tert_tdm_rx_2_port_mixer_controls,
16272 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
16273 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16274 tert_tdm_rx_3_port_mixer_controls,
16275 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
16276 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16277 quat_tdm_rx_0_port_mixer_controls,
16278 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
16279 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16280 quat_tdm_rx_1_port_mixer_controls,
16281 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
16282 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16283 quat_tdm_rx_2_port_mixer_controls,
16284 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
16285 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16286 quat_tdm_rx_3_port_mixer_controls,
16287 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053016288 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
16289 quin_tdm_rx_0_port_mixer_controls,
16290 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
16291 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
16292 quin_tdm_rx_1_port_mixer_controls,
16293 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
16294 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
16295 quin_tdm_rx_2_port_mixer_controls,
16296 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
16297 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
16298 quin_tdm_rx_3_port_mixer_controls,
16299 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016300 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16301 int0_mi2s_rx_port_mixer_controls,
16302 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
16303 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
16304 int4_mi2s_rx_port_mixer_controls,
16305 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
16306 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
16307 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
16308 ARRAY_SIZE(tx_qchat_mixer_controls)),
16309 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
16310 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
16311 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
16312 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
16313 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
16314 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080016315 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
16316 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
16317 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016318 /* lsm mixer definitions */
16319 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
16320 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
16321 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
16322 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
16323 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
16324 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
16325 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
16326 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
16327 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
16328 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
16329 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
16330 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
16331 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
16332 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
16333 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
16334 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
16335 /* Virtual Pins to force backends ON atm */
16336 SND_SOC_DAPM_OUTPUT("BE_OUT"),
16337 SND_SOC_DAPM_INPUT("BE_IN"),
16338
16339 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
16340 &slim0_rx_vi_fb_lch_mux),
16341 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
16342 &slim0_rx_vi_fb_rch_mux),
16343 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
16344 &mi2s_rx_vi_fb_mux),
16345 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
16346 &int4_mi2s_rx_vi_fb_mono_ch_mux),
16347 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
16348 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
16349
16350 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
16351 &voc_ext_ec_mux),
16352 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
16353 &ext_ec_ref_mux_ul1),
16354 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
16355 &ext_ec_ref_mux_ul2),
16356 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
16357 &ext_ec_ref_mux_ul3),
16358 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
16359 &ext_ec_ref_mux_ul4),
16360 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
16361 &ext_ec_ref_mux_ul5),
16362 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
16363 &ext_ec_ref_mux_ul6),
16364 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
16365 &ext_ec_ref_mux_ul8),
16366 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
16367 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053016368 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
16369 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053016370 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
16371 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016372 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
16373 &ext_ec_ref_mux_ul17),
16374 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
16375 &ext_ec_ref_mux_ul18),
16376 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
16377 &ext_ec_ref_mux_ul19),
Meng Wangbe8194e2018-04-25 10:40:01 +080016378 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
16379 &ext_ec_ref_mux_ul28),
16380 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
16381 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016382};
16383
16384static const struct snd_soc_dapm_route intercon[] = {
16385 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16386 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16387 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16388 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16389 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16390 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16391 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16392 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16393 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16394 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16395 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16396 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16397 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16398 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16399 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16400 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Ramjee Singh29973d72020-03-06 09:21:43 +053016401 {"PRI_RX Audio Mixer", "MultiMedia30", "MM_DL30"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016402 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
16403
16404 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16405 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16406 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16407 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16408 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16409 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16410 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16411 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16412 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16413 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16414 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16415 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16416 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16417 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16418 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16419 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16420 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
16421
16422 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16423 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16424 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16425 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16426 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16427 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16428 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16429 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16430 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16431 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16432 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16433 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16434 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16435 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16436 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16437 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16438 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
16439
16440 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16441 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16442 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16443 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16444 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16445 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16446 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16447 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16448 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16449 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16450 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16451 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16452 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16453 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16454 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16455 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16456 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
16457
16458 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16459 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16460 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16461 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16462 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16463 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16464 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16465 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16466 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16467 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16468 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16469 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16470 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16471 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16472 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16473 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16474 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
16475
16476 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
16477 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
16478 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
16479 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
16480 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
16481 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
16482 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
16483 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
16484 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
16485 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
16486 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
16487 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
16488 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
16489 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
16490 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
16491 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
16492 {"HDMI", NULL, "HDMI Mixer"},
16493
16494 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
16495 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
16496 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
16497 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
16498 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
16499 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
16500 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
16501 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
16502 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
16503 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
16504 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
16505 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
16506 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
16507 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
16508 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
16509 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
16510 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
16511
16512 {"SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16513 {"SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16514 {"SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16515 {"SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16516 {"SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16517 {"SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16518 {"SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16519 {"SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16520 {"SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16521 {"SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16522 {"SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16523 {"SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16524 {"SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16525 {"SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16526 {"SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16527 {"SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16528 {"SPDIF_RX", NULL, "SPDIF_RX Audio Mixer"},
16529
16530 /* incall */
16531 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
16532 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
16533 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
16534 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
16535 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
16536 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16537 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16538 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16539 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16540 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
16541 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16542 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16543 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16544 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16545 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
16546
16547 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16548 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16549 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16550 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16551 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16552 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16553 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16554 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16555 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16556 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16557 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16558 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16559 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16560 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16561 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16562 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16563 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
16564
16565 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16566 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16567 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16568 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16569 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16570 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16571 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16572 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16573 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16574 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16575 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16576 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16577 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16578 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16579 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16580 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16581 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
16582
16583 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16584 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16585 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16586 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16587 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16588 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16589 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16590 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16591 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16592 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16593 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16594 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16595 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16596 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16597 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16598 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16599 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
16600
16601 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16602 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16603 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
16604 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16605 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16606 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
16607 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
16608 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
16609 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16610 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
16611 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
16612 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16613 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16614 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16615 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16616 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016617 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16618 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016619 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16620 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16621 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16622 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16623 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16624 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016625 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16626 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016627 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016628 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16629 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16630 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16631 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16632 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
16633 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016634 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053016635 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
16636 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
16637 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016638 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
16639 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
16640 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053016641 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053016642 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016643 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
16644 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053016645 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016646 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16647 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16648 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16649 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16650 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16651 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16652 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16653 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16654 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
16655 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16656 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16657 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16658 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16659 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16660 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16661 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16662 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
16663
16664 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16665 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16666 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16667 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16668 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16669 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16670 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16671 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16672 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16673 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16674 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16675 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16676 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16677 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16678 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16679 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
16680
16681 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16682 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16683 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16684 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16685 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16686 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16687 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16688 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16689 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16690 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16691 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16692 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16693 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16694 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16695 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
16696
16697 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16698 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16699 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16700 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16701 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16702 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16703 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16704 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16705 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16706 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16707 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16708 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16709 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16710 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16711 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
16712
16713 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16714 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
16715
16716 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
16717 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
16718
16719 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16720 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16721 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16722 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16723 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16724 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16725 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16726 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
Sachin Mohan Gadagd1b8fbc2018-07-20 15:50:17 +053016727 {"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016728 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16729 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16730 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16731 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16732 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16733 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16734 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Ramjee Singh29973d72020-03-06 09:21:43 +053016735 {"PRI_MI2S_RX Audio Mixer", "MultiMedia30", "MM_DL30"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016736 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
16737
16738 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16739 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16740 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16741 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16742 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16743 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16744 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16745 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16746 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16747 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16748 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16749 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16750 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16751 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16752 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16753 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
16754
16755 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16756 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16757 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16758 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16759 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16760 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16761 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16762 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16763 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16764 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16765 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16766 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16767 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16768 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16769 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16770 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
16771
16772 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16773 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16774 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
16775 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
16776 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
16777 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
16778 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
16779 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
16780 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
16781 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
16782 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
16783 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
16784 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
16785 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
16786 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
16787 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
16788 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
16789 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
16790
16791 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16792 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16793 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16794 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16795 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16796 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16797 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16798 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16799 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16800 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16801 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16802 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16803 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16804 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16805 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16806 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16807 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
16808
16809 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
16810 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
16811 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
16812 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
16813 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
16814 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16815 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
16816 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
16817 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
16818 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
16819 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
16820 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
16821 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
16822 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
16823 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
16824 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
16825 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
16826
16827 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16828 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16829 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
16830 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
16831 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16832 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
16833 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
16834 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
16835 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16836 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
16837 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
16838 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
16839 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
16840 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
16841 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
16842 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
16843 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
16844
16845 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
16846 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
16847 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
16848 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
16849 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
16850 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
16851 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
16852 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
16853 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
16854 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
16855 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
16856 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
16857 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
16858 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
16859 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
16860 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
16861 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
16862
16863 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16864 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16865 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16866 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16867 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16868 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16869 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16870 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16871 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16872 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16873 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16874 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16875 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16876 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16877 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16878 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16879 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
16880
16881 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16882 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16883 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16884 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16885 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16886 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16887 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16888 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16889 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16890 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16891 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16892 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16893 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16894 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16895 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16896 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16897 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
16898
16899 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
16900 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
16901 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
16902 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
16903 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
16904 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
16905 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
16906 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
16907 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
16908 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
16909 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
16910 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
16911 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
16912 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
16913 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
16914 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
16915 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
16916
16917 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
16918 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
16919 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
16920 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
16921 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
16922 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
16923 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
16924 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
16925 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
16926 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
16927 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
16928 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
16929 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
16930 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
16931 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
16932 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
16933 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
16934
16935 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
16936 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
16937 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
16938 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
16939 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
16940 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
16941 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
16942 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
16943 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
16944 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
16945 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
16946 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
16947 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
16948 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
16949 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
16950 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
16951 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
16952
16953 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16954 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16955 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16956 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16957 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16958 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16959 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16960 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16961 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16962 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16963 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16964 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16965 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16966 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16967 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16968 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16969 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
16970
16971 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16972 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16973 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16974 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16975 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16976 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16977 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16978 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16979 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16980 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16981 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
16982 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
16983 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
16984 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
16985 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
16986 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
16987 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
16988
16989 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
16990 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
16991 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
16992 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
16993 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
16994 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
16995 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
16996 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
16997 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
16998 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
16999 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17000 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17001 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17002 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17003 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17004 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17005 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
17006
17007 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17008 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17009 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17010 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17011 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17012 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17013 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17014 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17015 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17016 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17017 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17018 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17019 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17020 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17021 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17022 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17023 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
17024
17025 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17026 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17027 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17028 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17029 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17030 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17031 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17032 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17033 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17034 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17035 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17036 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17037 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17038 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17039 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17040 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17041 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
17042
17043 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17044 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17045 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17046 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17047 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17048 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17049 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17050 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17051 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17052 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17053 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17054 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17055 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17056 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17057 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17058 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17059 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
17060
17061 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
17062 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
17063 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
17064 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
17065 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
17066 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
17067 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
17068 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
17069 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
17070 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
17071 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
17072 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
17073 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
17074 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
17075 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
17076 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
17077 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
17078
17079 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17080 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17081 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17082 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17083 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17084 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17085 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17086 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17087 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17088 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17089 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17090 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17091 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17092 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17093 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17094 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17095 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17096 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
17097
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017098 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17099 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17100 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17101 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17102 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17103 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17104 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17105 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17106 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17107 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17108 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17109 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17110 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17111 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17112 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17113 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17114 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
17115
17116 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17117 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17118 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17119 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17120 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17121 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17122 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17123 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17124 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17125 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17126 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17127 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17128 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17129 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17130 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17131 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17132 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17133 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
17134
17135 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17136 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17137 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17138 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17139 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17140 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17141 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17142 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17143 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17144 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17145 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17146 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17147 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17148 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17149 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17150 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17151 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17152 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
17153
17154 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17155 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17156 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17157 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17158 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17159 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17160 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17161 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17162 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17163 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17164 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17165 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17166 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17167 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17168 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17169 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17170 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17171 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
17172
Rohit Kumara5077932017-09-10 22:05:05 +053017173 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17174 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17175 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17176 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17177 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17178 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17179 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17180 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17181 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17182 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17183 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17184 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17185 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17186 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17187 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17188 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17189 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
17190 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
17191
17192 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
17193 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
17194 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
17195 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
17196 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
17197 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
17198 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
17199 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
17200 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
17201 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
17202 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
17203 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
17204 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
17205 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
17206 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
17207 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
17208 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
17209
17210 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
17211 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
17212 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
17213 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
17214 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
17215 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
17216 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
17217 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
17218 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
17219 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
17220 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
17221 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
17222 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
17223 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
17224 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
17225 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
17226 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
17227 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
17228
17229 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
17230 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
17231 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
17232 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
17233 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
17234 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
17235 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
17236 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
17237 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
17238 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
17239 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
17240 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
17241 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
17242 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
17243 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
17244 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
17245 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
17246 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
17247
17248 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
17249 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
17250 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
17251 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
17252 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
17253 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
17254 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
17255 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
17256 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
17257 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
17258 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
17259 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
17260 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
17261 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
17262 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
17263 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
17264 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
17265 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
17266
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017267 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
17268 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
17269 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
17270 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
17271 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017272 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017273 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017274 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17275 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17276 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17277 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17278 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
17279 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17280 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17281 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17282 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17283 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17284 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17285 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17286 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17287 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17288 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017289 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017290 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17291 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
17292 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017293 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017294 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
17295 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017296 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
17297 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
17298 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017299 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017300 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
17301 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
17302 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017303 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017304 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017305 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
17306 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
17307 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017308 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17309 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
17310 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
17311 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
17312 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17313 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17314 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17315 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
17316 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17317 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17318 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017319 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017320 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17321 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
17322 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017323 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017324 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017325 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17326 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17327 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017328 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017329 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017330 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17331 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17332 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17333 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
17334 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017335 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17336 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
17337 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
17338 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017339 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017340
17341 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17342 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17343 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17344 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17345 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17346 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17347 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17348 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17349 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17350 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17351 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17352 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17353 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17354 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17355 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17356 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017357 {"MultiMedia1 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017358 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17359 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17360 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17361 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017362
17363 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17364 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17365 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17366 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17367 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17368 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17369 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17370 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17371 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17372 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17373 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17374 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17375 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17376 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17377 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17378 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017379 {"MultiMedia2 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017380 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17381 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17382 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17383 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017384
17385 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17386 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17387 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17388 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17389 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17390 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17391 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17392 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17393 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17394 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17395 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17396 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17397 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17398 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17399 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17400 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017401 {"MultiMedia3 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017402 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17403 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17404 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17405 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017406
17407 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17408 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17409 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17410 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17411 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17412 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17413 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17414 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17415 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17416 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17417 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17418 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17419 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17420 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17421 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17422 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017423 {"MultiMedia4 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017424 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17425 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17426 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17427 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017428
17429 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17430 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17431 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17432 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17433 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17434 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17435 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17436 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17437 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17438 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17439 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17440 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17441 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17442 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17443 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17444 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017445 {"MultiMedia5 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017446 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17447 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17448 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17449 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017450
17451 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17452 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17453 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17454 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17455 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17456 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17457 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17458 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17459 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17460 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17461 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17462 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17463 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17464 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17465 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17466 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017467 {"MultiMedia6 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017468 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17469 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17470 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17471 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017472
17473 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17474 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17475 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17476 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17477 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17478 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17479 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17480 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17481 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17482 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17483 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17484 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17485 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17486 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17487 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17488 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017489 {"MultiMedia8 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017490 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17491 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17492 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17493 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017494
17495 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17496 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17497 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17498 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17499 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17500 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17501 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17502 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053017503 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17504 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17505 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17506 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Raja Mallik425e1d32018-05-20 19:21:10 +053017507 {"MultiMedia9 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017508
Laxminath Kasam38070be2017-08-17 18:21:59 +053017509 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17510 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17511 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17512 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17513 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17514 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17515 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17516 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017517 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17518 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17519 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17520 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017521 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017522 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17523 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17524 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17525 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17526 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17527 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17528 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17529 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17530 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17531 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17532 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17533 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17534 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17535 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17536 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17537 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053017538 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
17539 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
17540 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
17541 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017542
17543 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17544 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17545 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17546 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17547 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17548 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017549 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017550
Asish Bhattacharya34504582017-08-08 12:55:01 +053017551 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
17552 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
17553 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
17554 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
17555 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
17556 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
17557 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
17558 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
17559 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
17560 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
17561 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
17562 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
17563 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
17564 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17565 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
17566 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
17567 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
17568
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017569 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17570 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17571 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17572 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17573 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17574 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17575 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17576 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17577 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17578 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17579 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17580 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17581 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17582 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17583 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17584 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17585 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
17586 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
17587
17588 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17589 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17590 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17591 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17592 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17593 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17594 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17595 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17596 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17597 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17598 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17599 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17600 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17601 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17602 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17603 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17604 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
17605 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
17606
17607 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17608 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17609 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17610 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17611 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17612 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17613 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17614 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17615 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17616 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17617 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17618 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17619 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17620 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17621 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17622 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17623 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
17624
17625 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17626 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17627 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17628 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17629 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17630 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17631 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17632 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17633 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17634 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17635 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17636 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17637 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17638 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17639 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17640 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17641 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
17642
17643 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17644 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17645 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017646 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017647 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17648 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17649 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017650 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17651 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017652 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
17653 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017654 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017655 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17656 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017657 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017658 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17659 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17660 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017661 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17662 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017663 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17664 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17665 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17666
17667 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
17668 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
17669 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017670 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017671 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
17672 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
17673 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017674 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
17675 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017676 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
17677 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017678 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017679 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
17680 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
17681 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
17682 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
17683 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
17684 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
17685 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
17686 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
17687 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053017688 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053017689 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017690 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
17691 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
17692 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
17693 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053017694 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
17695 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017696
17697 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17698 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17699 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17700 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17701 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17702 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17703 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17704 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17705 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17706 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17707 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17708 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17709 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17710 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17711 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17712 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17713 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
17714
17715 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17716 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17717 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17718 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17719 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17720 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17721 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17722 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17723 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17724 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17725 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17726 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17727 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17728 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17729 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17730 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17731 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
17732
17733 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17734 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17735 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17736 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17737 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17738 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17739 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17740 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17741 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17742 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17743 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17744 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17745 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17746 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17747 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17748 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17749 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
17750
17751 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17752 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17753 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17754 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17755 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17756 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17757 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17758 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17759 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17760 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17761 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17762 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17763 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17764 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17765 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17766 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17767 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
17768
Rohit Kumara5077932017-09-10 22:05:05 +053017769 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
17770 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
17771 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
17772 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
17773 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
17774 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
17775 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
17776 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
17777 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
17778 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
17779 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
17780 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
17781 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
17782 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
17783 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
17784 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
17785 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
17786
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017787 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
17788 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17789 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17790 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17791 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17792 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
17793
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017794 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
17795 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17796 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17797 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
17798
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017799 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17800 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17801 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17802 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17803 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17804 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
17805
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017806 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
17807 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017808 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17809 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17810 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17811 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
17812
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017813 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
17814 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017815 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17816 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17817 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17818 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
17819
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017820 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
17821 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017822 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17823 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17824 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17825 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
17826
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080017827 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
17828 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080017829 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17830 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17831 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17832 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
17833
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017834 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
17835 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17836 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17837 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17838 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017839 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
17840
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017841 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17842 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17843 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17844 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17845 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17846 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
17847
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017848 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17849 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017850 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17851 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17852 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17853 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
17854
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017855 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17856 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017857 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17858 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17859 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17860 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
17861
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017862 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17863 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017864 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17865 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17866 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17867 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
17868
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017869 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17870 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017871 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17872 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17873 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17874 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
17875
Rohit Kumara5077932017-09-10 22:05:05 +053017876 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
17877 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053017878 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17879 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17880 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17881 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
17882
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017883 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
17884 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17885 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17886 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17887 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17888 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
17889 {"HDMI", NULL, "HDMI_DL_HL"},
17890
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017891 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017892 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17893 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17894 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080017895 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017896 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
17897
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017898 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017899 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17900 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17901 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17902 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17903 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
17904
17905 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17906 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17907 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17908 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17909 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17910 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
17911
17912 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
17913 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17914 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17915 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17916 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17917 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
17918
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017919 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017920 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17921 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17922 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17923 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17924 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
17925
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017926 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017927 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17928 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17929 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17930 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
17931
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017932 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017933 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
17934 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17935 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17936 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
17937
Raja Mallik321d5712018-05-04 17:22:11 +053017938 {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017939 {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17940 {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17941 {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17942 {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"},
17943 {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17944 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17945 {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17946 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"},
17947
Raja Mallik321d5712018-05-04 17:22:11 +053017948 {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017949 {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17950 {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17951 {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17952 {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"},
17953 {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17954 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17955 {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17956 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"},
17957
Raja Mallik321d5712018-05-04 17:22:11 +053017958 {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017959 {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17960 {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17961 {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17962 {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"},
17963 {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17964 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17965 {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17966 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"},
17967
Raja Mallik321d5712018-05-04 17:22:11 +053017968 {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"},
Raja Mallik321d5712018-05-04 17:22:11 +053017969 {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
17970 {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
17971 {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
17972 {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"},
17973 {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"},
17974 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17975 {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
17976 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"},
17977
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017978 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
17979 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
17980
17981 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17982 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17983 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17984 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053017985 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017986 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017987 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017988 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
17989 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
17990
17991 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
17992 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
17993 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
17994 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
17995 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Bala Kishore Pati1a044712018-10-03 12:12:36 +053017996 {"AUDIO_REF_EC_UL1 MUX", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017997 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
17998 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
17999 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
18000 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
18001 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18002
18003 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18004 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18005 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18006 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18007
18008 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18009 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18010 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18011 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18012
18013 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18014 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18015 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18016 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18017
18018 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18019 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18020 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18021 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18022
18023 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18024 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18025 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18026 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18027
18028 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18029 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18030 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18031 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Bala Kishore Pati1a044712018-10-03 12:12:36 +053018032 {"AUDIO_REF_EC_UL8 MUX", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018033
18034 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18035 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18036 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18037 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18038
Laxminath Kasam38070be2017-08-17 18:21:59 +053018039 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18040 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18041 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18042 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18043 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
18044 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18045 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
18046 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
18047 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
18048 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070018049
18050 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18051 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18052 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18053 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18054
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018055 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18056 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18057 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18058 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18059
18060 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18061 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18062 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18063 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18064
18065 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18066 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18067 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18068 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18069
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053018070 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18071 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18072 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18073 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18074
18075 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18076 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18077 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18078 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080018079
18080 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18081 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18082 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18083 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18084 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18085 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18086 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18087 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
18088
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018089 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
18090 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
18091 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
18092 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
18093 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
18094 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
18095 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
18096 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053018097 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053018098 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018099 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
18100 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
18101 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag265d94d2018-01-04 11:04:00 +053018102 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
18103 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018105 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
18106 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
18107 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
18108 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
18109 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
18110 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
18111 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
18112 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
18113 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
18114 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
18115 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
18116 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
18117 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
18118 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
18119 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018120 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018121 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Raja Mallik321d5712018-05-04 17:22:11 +053018122 {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"},
Aditya Bavanari769c3102018-02-23 16:34:40 +053018123 {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"},
18124 {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018125 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
18126
18127 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
18128 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
18129 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
18130 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
18131 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
18132 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
18133 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
18134 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
18135 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
18136 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
18137 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
18138 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
18139 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
18140 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
18141 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018142 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari769c3102018-02-23 16:34:40 +053018143 {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"},
18144 {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"},
Raja Mallik321d5712018-05-04 17:22:11 +053018145 {"VoiceMMode2_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018146 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
18147
18148 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
18149 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
18150 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
18151 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
18152 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
18153 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
18154 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
18155 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
18156 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
18157 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
18158 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
18159 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
18160 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
18161 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018162 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018163 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
Raja Mallik321d5712018-05-04 17:22:11 +053018164 {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018165 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
18166
18167 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
18168 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
18169 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
18170 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
18171 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
18172 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
18173 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
18174 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
18175 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
18176 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
18177 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
18178 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
18179 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
18180 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
18181 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
18182
18183 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18184 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18185 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18186 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18187 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18188 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18189 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18190 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018191 {"LSM1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18192 {"LSM1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018193 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
18194
18195 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18196 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18197 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18198 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18199 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18200 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18201 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18202 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018203 {"LSM2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18204 {"LSM2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018205 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
18206
18207
18208 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18209 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18210 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18211 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18212 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18213 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18214 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18215 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018216 {"LSM3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18217 {"LSM3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018218 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
18219
18220
18221 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18222 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18223 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18224 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18225 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18226 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18227 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18228 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018229 {"LSM4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18230 {"LSM4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018231 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
18232
18233 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18234 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18235 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18236 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18237 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18238 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18239 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18240 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018241 {"LSM5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18242 {"LSM5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018243 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
18244
18245 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18246 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18247 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18248 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18249 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18250 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018251 {"LSM6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18252 {"LSM6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018253 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
18254
18255 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18256 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18257 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18258 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18259 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18260 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018261 {"LSM7 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18262 {"LSM7 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018263 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
18264
18265 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
18266 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
18267 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
18268 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
18269 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
18270 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Ashish Jain01b10322018-05-12 15:37:44 +053018271 {"LSM8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18272 {"LSM8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018273 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
18274
18275
18276 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
18277 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
18278 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
18279 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
18280 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
18281 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
18282 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
18283 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
18284 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
18285 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
18286 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018287 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018288 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
18289 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
18290 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
18291 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
18292 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
18293 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
18294
18295 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
18296 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
18297 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
18298 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
18299 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
18300 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
18301 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
18302 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
18303 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
18304 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
18305 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
18306 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Lataf8664712018-02-22 14:46:09 -080018307 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
18308 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018309 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018310 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018311 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018312 {"MI2S_RX", NULL, "MI2S_DL_HL"},
18313 {"MI2S_UL_HL", NULL, "MI2S_TX"},
18314 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
18315 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
18316
18317 /* connect to INT4_MI2S_DL_HL since same pcm_id */
18318 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18319 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
18320 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
18321 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
18322 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
18323 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
18324 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
18325 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
18326 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
18327 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
18328
18329 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
18330 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018331 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
18332 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018333 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18334 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
18335 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
18336 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
18337 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
18338 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
18339 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
18340 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
18341 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
18342 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
18343
18344 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
18345 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
18346 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
18347 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
18348 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
18349 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
18350 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
18351 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
18352 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
18353 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
18354 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
18355 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
18356 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
18357 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
18358 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
18359 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
18360 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
18361 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
18362 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
18363 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
18364 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
18365 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
18366 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
18367 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
18368 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
18369 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
18370 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
18371 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
18372 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
18373 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
18374 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
18375 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053018376 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
18377 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
18378 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
18379 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
18380 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
18381 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
18382 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
18383 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018384
18385 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18386 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18387 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18388 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18389 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18390 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18391 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18392 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18393 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18394 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18395 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18396 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18397 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18398 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18399 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18400 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018401 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18402 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18403 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18404 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018405 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
18406
18407 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18408 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18409 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18410 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18411 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18412 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18413 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18414 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18415 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18416 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18417 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18418 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18419 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18420 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18421 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18422 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018423 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18424 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18425 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18426 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018427 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
18428
18429 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18430 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18431 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18432 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18433 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18434 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18435 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18436 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18437 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18438 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18439 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18440 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18441 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18442 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18443 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18444 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018445 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18446 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18447 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18448 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018449 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
18450
18451 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18452 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18453 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18454 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18455 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18456 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18457 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18458 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18459 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
18460 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
18461 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
18462 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
18463 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18464 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18465 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18466 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018467 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18468 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18469 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18470 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018471 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
18472
18473 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18474 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18475 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18476 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18477 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18478 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18479 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18480 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18481 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18482 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18483 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18484 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18485 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18486 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18487 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18488 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018489 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18490 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18491 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18492 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018493 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
18494
18495 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18496 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18497 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18498 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18499 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18500 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18501 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18502 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18503 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18504 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18505 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18506 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18507 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18508 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18509 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18510 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018511 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18512 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18513 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18514 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018515 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
18516
18517 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18518 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18519 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18520 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18521 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18522 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18523 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18524 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18525 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18526 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18527 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18528 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18529 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18530 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18531 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18532 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018533 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18534 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18535 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18536 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018537 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
18538
18539 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18540 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18541 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18542 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18543 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18544 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18545 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18546 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18547 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
18548 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
18549 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
18550 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
18551 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18552 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18553 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18554 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018555 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18556 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18557 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18558 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018559 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
18560
18561 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18562 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18563 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18564 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18565 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18566 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18567 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18568 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18569 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18570 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18571 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18572 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18573 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18574 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18575 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18576 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018577 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18578 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18579 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18580 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018581 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
18582
18583 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18584 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18585 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18586 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18587 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18588 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18589 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18590 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18591 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18592 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18593 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18594 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18595 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18596 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18597 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18598 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018599 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18600 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18601 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18602 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018603 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
18604
18605 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18606 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18607 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18608 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18609 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18610 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18611 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18612 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18613 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18614 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18615 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18616 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18617 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18618 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18619 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18620 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018621 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18622 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18623 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18624 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018625 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
18626
18627 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18628 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18629 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18630 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18631 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18632 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18633 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18634 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18635 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18636 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18637 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18638 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18639 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18640 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18641 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18642 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018643 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18644 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18645 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18646 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018647 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
18648
18649 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18650 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18651 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18652 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18653 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18654 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18655 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18656 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18657 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18658 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18659 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18660 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18661 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18662 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18663 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18664 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018665 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18666 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18667 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18668 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018669 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
18670
18671 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18672 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18673 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18674 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18675 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18676 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18677 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18678 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18679 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18680 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18681 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18682 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18683 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18684 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18685 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18686 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018687 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18688 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18689 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18690 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018691 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
18692
18693 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18694 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18695 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18696 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18697 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18698 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18699 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18700 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18701 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18702 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18703 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18704 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18705 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18706 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18707 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18708 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018709 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18710 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18711 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18712 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018713 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
18714
18715 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18716 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18717 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18718 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18719 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18720 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18721 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18722 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18723 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18724 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18725 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18726 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18727 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18728 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18729 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18730 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053018731 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18732 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18733 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18734 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018735 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
18736
Rohit Kumara5077932017-09-10 22:05:05 +053018737 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18738 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18739 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18740 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18741 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18742 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18743 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18744 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18745 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18746 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18747 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18748 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18749 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18750 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18751 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18752 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18753 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18754 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18755 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18756 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018757 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018758
18759 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18760 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18761 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18762 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18763 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18764 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18765 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18766 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18767 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18768 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18769 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18770 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18771 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18772 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18773 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18774 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18775 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18776 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18777 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18778 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018779 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018780
18781 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18782 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18783 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18784 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18785 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18786 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18787 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18788 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18789 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18790 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18791 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18792 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18793 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18794 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18795 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18796 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18797 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18798 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18799 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18800 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018801 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018802
18803 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18804 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18805 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18806 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18807 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18808 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18809 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18810 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18811 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
18812 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
18813 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
18814 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
18815 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
18816 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
18817 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
18818 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
18819 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
18820 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
18821 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
18822 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053018823 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053018824
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018825 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18826 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18827 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18828 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018829 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018830 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18831 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18832 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18833 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18834 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18835 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
18836
18837 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18838 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18839 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18840 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018841 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018842 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18843 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18844 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18845 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18846 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18847 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
18848
18849 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18850 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18851 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18852 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18853 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18854 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18855 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18856 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18857 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018858 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018859 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18860 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18861 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
18862 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18863 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018864 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018865 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18866 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
18867 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18868 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18869 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
18870 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
18871 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
18872 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
18873 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
18874 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
18875
18876
18877 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18878 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18879 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18880 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18881 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018882 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018883 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
18884
18885 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18886 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18887 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080018888 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018889 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
18890
18891 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18892 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18893 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18894 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
18895
18896 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18897 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
18898 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18899 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
18900
Rohit Kumara5077932017-09-10 22:05:05 +053018901 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18902 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
18903 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18904 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
18905
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018906 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18907 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18908 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18909 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18910 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18911 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
18912 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
18913 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053018914 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018915 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
18916 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18917 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
18918 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
18919 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18920 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18921 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18922 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18923 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18924 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18925 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
18926
18927 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18928 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18929 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18930 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18931 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18932 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18933 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18934 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18935 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18936 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18937 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18938 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
18939
18940 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
18941 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18942 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
18943 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18944 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18945 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
18946 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18947 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18948 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
18949 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
18950 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
18951 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
18952
kunleizdf5a00a2017-11-27 15:27:36 +080018953 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18954 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018955 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080018956
18957 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18958 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018959 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080018960
18961 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18962 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018963 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
18964
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018965 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
18966 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018967 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18968 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18969 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18970 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
18971
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018972 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
18973 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018974 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
18975 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
18976 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
18977 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
18978
18979 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
18980 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
18981 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18982 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
18983 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18984 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18985 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
18986 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
18987 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
18988 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
18989 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
18990 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
18991 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
18992
18993 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
18994 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
18995 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
18996 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
18997 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
18998 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
18999 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
19000 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19001 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19002 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19003 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19004 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19005 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
19006
19007 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19008 {"HDMI", NULL, "HDMI_RX Port Mixer"},
19009
19010 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19011 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
19012
19013 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19014 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
19015
19016 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
19017 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
19018 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
19019
19020 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19021 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19022 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19023 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019024 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019025 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19026 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19027 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
19028 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080019029 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019030 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
19031
19032 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19033 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19034 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19035 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019036 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019037 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19038 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19039 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani87fb1dd2017-12-13 13:38:46 -080019040 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019041 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
19042
19043 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19044 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19045 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19046 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019047 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019048 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19049 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19050 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
19051
19052 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19053 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19054 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19055 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019056 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019057 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19058 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
19059 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
19060 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19061 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
19062
Rohit Kumara5077932017-09-10 22:05:05 +053019063 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19064 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
19065 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19066 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19067 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
19068 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19069 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
19070 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
19071
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019072 /* Backend Enablement */
19073
19074 {"BE_OUT", NULL, "PRI_I2S_RX"},
19075 {"BE_OUT", NULL, "SEC_I2S_RX"},
19076 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
19077 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
19078 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
19079 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19080 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
19081 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
19082 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
19083 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
19084 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
19085 {"BE_OUT", NULL, "USB_AUDIO_RX"},
19086 {"BE_OUT", NULL, "HDMI"},
19087 {"BE_OUT", NULL, "DISPLAY_PORT"},
19088 {"BE_OUT", NULL, "SPDIF_RX"},
19089 {"BE_OUT", NULL, "MI2S_RX"},
19090 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
19091 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
19092 {"BE_OUT", NULL, "TERT_MI2S_RX"},
19093 {"BE_OUT", NULL, "SEC_MI2S_RX"},
19094 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
19095 {"BE_OUT", NULL, "PRI_MI2S_RX"},
19096 {"BE_OUT", NULL, "INT0_MI2S_RX"},
19097 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019098 {"BE_OUT", NULL, "INT2_MI2S_RX"},
19099 {"BE_OUT", NULL, "INT3_MI2S_RX"},
19100 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019101 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19102 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
19103 {"BE_OUT", NULL, "INT_FM_RX"},
19104 {"BE_OUT", NULL, "PCM_RX"},
19105 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19106 {"BE_OUT", NULL, "AUX_PCM_RX"},
19107 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
19108 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
19109 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053019110 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019111 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
19112 {"BE_OUT", NULL, "INT_FM_RX"},
19113 {"BE_OUT", NULL, "PCM_RX"},
19114 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19115 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
19116 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
19117 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
19118 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
19119 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
19120 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
19121 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
19122 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
19123 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
19124 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
19125 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
19126 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
19127 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
19128 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
19129 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
19130 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
19131 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
19132 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
19133 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053019134 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
19135 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
19136 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
19137 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019138
19139 {"PRI_I2S_TX", NULL, "BE_IN"},
19140 {"MI2S_TX", NULL, "BE_IN"},
19141 {"QUAT_MI2S_TX", NULL, "BE_IN"},
19142 {"QUIN_MI2S_TX", NULL, "BE_IN"},
19143 {"PRI_MI2S_TX", NULL, "BE_IN"},
19144 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019145 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019146 {"INT2_MI2S_TX", NULL, "BE_IN"},
19147 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053019148 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019149 {"INT5_MI2S_TX", NULL, "BE_IN"},
19150 {"SEC_MI2S_TX", NULL, "BE_IN"},
19151 {"SENARY_MI2S_TX", NULL, "BE_IN" },
19152 {"SLIMBUS_0_TX", NULL, "BE_IN" },
19153 {"SLIMBUS_1_TX", NULL, "BE_IN" },
19154 {"SLIMBUS_3_TX", NULL, "BE_IN" },
19155 {"SLIMBUS_4_TX", NULL, "BE_IN" },
19156 {"SLIMBUS_5_TX", NULL, "BE_IN" },
19157 {"SLIMBUS_6_TX", NULL, "BE_IN" },
19158 {"SLIMBUS_7_TX", NULL, "BE_IN" },
19159 {"SLIMBUS_8_TX", NULL, "BE_IN" },
19160 {"USB_AUDIO_TX", NULL, "BE_IN" },
19161 {"INT_BT_SCO_TX", NULL, "BE_IN"},
19162 {"INT_FM_TX", NULL, "BE_IN"},
19163 {"PCM_TX", NULL, "BE_IN"},
19164 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
19165 {"BE_OUT", NULL, "STUB_RX"},
19166 {"STUB_TX", NULL, "BE_IN"},
19167 {"STUB_1_TX", NULL, "BE_IN"},
19168 {"BE_OUT", NULL, "AUX_PCM_RX"},
19169 {"AUX_PCM_TX", NULL, "BE_IN"},
19170 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
19171 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
19172 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019173 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019174 {"INCALL_RECORD_TX", NULL, "BE_IN"},
19175 {"INCALL_RECORD_RX", NULL, "BE_IN"},
19176 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
19177 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
19178 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
19179 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19180 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
19181 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
19182 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
19183 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
19184 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
19185 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
19186 {"PRI_TDM_TX_0", NULL, "BE_IN"},
19187 {"PRI_TDM_TX_1", NULL, "BE_IN"},
19188 {"PRI_TDM_TX_2", NULL, "BE_IN"},
19189 {"PRI_TDM_TX_3", NULL, "BE_IN"},
19190 {"SEC_TDM_TX_0", NULL, "BE_IN"},
19191 {"SEC_TDM_TX_1", NULL, "BE_IN"},
19192 {"SEC_TDM_TX_2", NULL, "BE_IN"},
19193 {"SEC_TDM_TX_3", NULL, "BE_IN"},
19194 {"TERT_TDM_TX_0", NULL, "BE_IN"},
19195 {"TERT_TDM_TX_1", NULL, "BE_IN"},
19196 {"TERT_TDM_TX_2", NULL, "BE_IN"},
19197 {"TERT_TDM_TX_3", NULL, "BE_IN"},
19198 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
19199 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
19200 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
19201 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Raja Mallik425e1d32018-05-20 19:21:10 +053019202 {"AFE_LOOPBACK_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053019203 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
19204 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
19205 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
19206 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019207};
19208
19209static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
19210 struct snd_pcm_hw_params *params)
19211{
19212 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19213 unsigned int be_id = rtd->dai_link->id;
19214
19215 if (be_id >= MSM_BACKEND_DAI_MAX) {
19216 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19217 return -EINVAL;
19218 }
19219
19220 mutex_lock(&routing_lock);
19221 msm_bedais[be_id].sample_rate = params_rate(params);
19222 msm_bedais[be_id].channel = params_channels(params);
19223 msm_bedais[be_id].format = params_format(params);
19224 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
19225 __func__, msm_bedais[be_id].sample_rate,
19226 msm_bedais[be_id].format, be_id);
19227 mutex_unlock(&routing_lock);
19228 return 0;
19229}
19230
19231static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
19232{
19233 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19234 unsigned int be_id = rtd->dai_link->id;
19235 int i, session_type, path_type, topology;
19236 struct msm_pcm_routing_bdai_data *bedai;
19237 struct msm_pcm_routing_fdai_data *fdai;
19238
19239 pr_debug("%s: substream->pcm->id:%s\n",
19240 __func__, substream->pcm->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 bedai = &msm_bedais[be_id];
19248 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
19249 0 : 1);
19250 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
19251 path_type = ADM_PATH_PLAYBACK;
19252 else
19253 path_type = ADM_PATH_LIVE_REC;
19254
19255 mutex_lock(&routing_lock);
19256 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19257 if (!is_mm_lsm_fe_id(i))
19258 continue;
19259 fdai = &fe_dai_map[i][session_type];
19260 if (fdai->strm_id != INVALID_SESSION) {
19261 int idx;
19262 int port_id;
19263 unsigned long copp =
19264 session_copp_map[i][session_type][be_id];
19265 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
19266 if (test_bit(idx, &copp))
19267 break;
19268 fdai->be_srate = bedai->sample_rate;
Sachin Mohan Gadag11b247f2018-09-06 19:27:42 +053019269 port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019270 topology = adm_get_topology_for_port_copp_idx(port_id,
19271 idx);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019272 adm_close(port_id, fdai->perf_mode, idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019273 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
19274 __func__, copp, i, session_type, be_id,
19275 topology);
19276 clear_bit(idx,
19277 &session_copp_map[i][session_type][be_id]);
19278 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
19279 (bedai->passthr_mode[i] == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019280 msm_pcm_routing_deinit_pp(port_id,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019281 topology);
19282 }
19283 }
19284
19285 bedai->active = 0;
19286 bedai->sample_rate = 0;
19287 bedai->channel = 0;
19288 for (i = 0; i < MSM_FRONTEND_DAI_MAX; i++) {
19289 if (bedai->passthr_mode[i] != LISTEN)
19290 bedai->passthr_mode[i] = LEGACY_PCM;
19291 }
19292 mutex_unlock(&routing_lock);
19293
19294 return 0;
19295}
19296
19297static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
19298{
19299 struct snd_soc_pcm_runtime *rtd = substream->private_data;
19300 unsigned int be_id = rtd->dai_link->id;
19301 int i, path_type, topology;
19302 int session_type = INVALID_SESSION;
19303 struct msm_pcm_routing_bdai_data *bedai;
19304 u32 channels, sample_rate;
19305 uint16_t bits_per_sample = 16, voc_path_type;
19306 struct msm_pcm_routing_fdai_data *fdai;
19307 u32 session_id;
19308 struct media_format_info voc_be_media_format;
19309 bool is_lsm;
19310
19311 pr_debug("%s: substream->pcm->id:%s\n",
19312 __func__, substream->pcm->id);
19313
19314 if (be_id >= MSM_BACKEND_DAI_MAX) {
19315 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
19316 return -EINVAL;
19317 }
19318
19319 bedai = &msm_bedais[be_id];
19320
19321 mutex_lock(&routing_lock);
19322 if (bedai->active == 1)
19323 goto done; /* Ignore prepare if back-end already active */
19324
19325 /* AFE port is not active at this point. However, still
19326 * go ahead setting active flag under the notion that
19327 * QDSP6 is able to handle ADM starting before AFE port
19328 * is started.
19329 */
19330 bedai->active = 1;
19331
19332 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19333 if (!(is_mm_lsm_fe_id(i) &&
19334 route_check_fe_id_adm_support(i)))
19335 continue;
19336
19337 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
19338 if (bedai->passthr_mode[i] != LEGACY_PCM)
19339 path_type = ADM_PATH_COMPRESSED_RX;
19340 else
19341 path_type = ADM_PATH_PLAYBACK;
19342 session_type = SESSION_TYPE_RX;
19343 } else {
19344 path_type = ADM_PATH_LIVE_REC;
19345 session_type = SESSION_TYPE_TX;
19346 }
19347
19348 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
19349 (i <= MSM_FRONTEND_DAI_LSM8);
19350 fdai = &fe_dai_map[i][session_type];
19351 if (fdai->strm_id != INVALID_SESSION) {
19352 int app_type, app_type_idx, copp_idx, acdb_dev_id;
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019353 int port_id = get_port_id(bedai->port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019354
19355 if (session_type == SESSION_TYPE_TX &&
19356 fdai->be_srate &&
19357 (fdai->be_srate != bedai->sample_rate)) {
19358 pr_debug("%s: flush strm %d diff BE rates\n",
19359 __func__,
19360 fdai->strm_id);
19361
19362 if (fdai->event_info.event_func)
19363 fdai->event_info.event_func(
19364 MSM_PCM_RT_EVT_BUF_RECFG,
19365 fdai->event_info.priv_data);
19366 fdai->be_srate = 0; /* might not need it */
19367 }
19368 bits_per_sample = msm_routing_get_bit_width(
19369 bedai->format);
19370
19371 app_type =
19372 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
19373 if (app_type && is_lsm) {
19374 app_type_idx =
19375 msm_pcm_routing_get_lsm_app_type_idx(app_type);
19376 sample_rate =
19377 fe_dai_app_type_cfg[i][session_type][be_id]
19378 .sample_rate;
19379 bits_per_sample =
19380 lsm_app_type_cfg[app_type_idx].bit_width;
19381 } else if (app_type) {
19382 app_type_idx =
19383 msm_pcm_routing_get_app_type_idx(app_type);
19384 sample_rate =
19385 fe_dai_app_type_cfg[i][session_type]
19386 [be_id].sample_rate;
19387 bits_per_sample =
19388 app_type_cfg[app_type_idx].bit_width;
19389 } else
19390 sample_rate = bedai->sample_rate;
19391 /*
19392 * check if ADM needs to be configured with different
19393 * channel mapping than backend
19394 */
19395 if (!bedai->adm_override_ch)
19396 channels = bedai->channel;
19397 else
19398 channels = bedai->adm_override_ch;
19399 acdb_dev_id =
19400 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
19401 topology = msm_routing_get_adm_topology(i, session_type,
19402 be_id);
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019403 copp_idx = adm_open(port_id, path_type,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019404 sample_rate, channels, topology,
19405 fdai->perf_mode, bits_per_sample,
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019406 app_type, acdb_dev_id,
19407 session_type);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019408 if ((copp_idx < 0) ||
19409 (copp_idx >= MAX_COPPS_PER_PORT)) {
19410 pr_err("%s: adm open failed\n", __func__);
19411 mutex_unlock(&routing_lock);
19412 return -EINVAL;
19413 }
19414 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
19415 __func__, i, session_type, be_id);
19416 set_bit(copp_idx,
19417 &session_copp_map[i][session_type][be_id]);
19418
19419 if (msm_is_resample_needed(
19420 sample_rate,
19421 bedai->sample_rate))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019422 adm_copp_mfc_cfg(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019423 bedai->sample_rate);
19424
19425 msm_pcm_routing_build_matrix(i, session_type, path_type,
19426 fdai->perf_mode,
19427 bedai->passthr_mode[i]);
19428 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
19429 (bedai->passthr_mode[i] == LEGACY_PCM))
Sachin Mohan Gadag3c3c5812018-07-20 15:46:54 +053019430 msm_pcm_routing_cfg_pp(port_id, copp_idx,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019431 topology, channels);
19432 }
19433 }
19434
19435 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
19436 session_id = msm_pcm_routing_get_voc_sessionid(i);
19437 if (session_id) {
19438 pr_debug("%s voice session_id: 0x%x\n", __func__,
19439 session_id);
19440
19441 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
19442 voc_path_type = RX_PATH;
19443 else
19444 voc_path_type = TX_PATH;
19445
19446 voc_set_route_flag(session_id, voc_path_type, 1);
19447
19448 memset(&voc_be_media_format, 0,
19449 sizeof(struct media_format_info));
19450
19451 voc_be_media_format.port_id = bedai->port_id;
19452 voc_be_media_format.num_channels = bedai->channel;
19453 voc_be_media_format.sample_rate = bedai->sample_rate;
19454 voc_be_media_format.bits_per_sample = bedai->format;
19455 /* Defaulting this to 1 for voice call usecases */
19456 voc_be_media_format.channel_mapping[0] = 1;
19457
19458 voc_set_device_config(session_id, voc_path_type,
19459 &voc_be_media_format);
19460
19461 if (voc_get_route_flag(session_id, RX_PATH) &&
19462 voc_get_route_flag(session_id, TX_PATH))
19463 voc_enable_device(session_id);
19464 }
19465 }
19466
19467 /* Check if backend is an external ec ref port and set as needed */
19468 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
19469
19470 memset(&voc_be_media_format, 0,
19471 sizeof(struct media_format_info));
19472
19473 /* Get format info for ec ref port from msm_bedais[] */
19474 voc_be_media_format.port_id = bedai->port_id;
19475 voc_be_media_format.num_channels = bedai->channel;
19476 voc_be_media_format.bits_per_sample = bedai->format;
19477 voc_be_media_format.sample_rate = bedai->sample_rate;
19478 /* Defaulting this to 1 for voice call usecases */
19479 voc_be_media_format.channel_mapping[0] = 1;
19480 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
19481 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
19482 __func__, voc_be_media_format.port_id,
19483 voc_be_media_format.num_channels,
19484 voc_be_media_format.bits_per_sample,
19485 voc_be_media_format.sample_rate);
19486 }
19487
19488done:
19489 mutex_unlock(&routing_lock);
19490
19491 return 0;
19492}
19493
19494static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
19495 int fe_id)
19496{
19497 int index, topo_id, be_idx;
19498 unsigned long pp_config = 0;
19499 bool mute_on;
19500 int latency;
19501 bool compr_passthr_mode = true;
19502
19503 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
19504
19505 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
19506 pr_err("%s: Device pp params on invalid port %d\n",
19507 __func__, port_id);
19508 return -EINVAL;
19509 }
19510
19511 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
19512 if (port_id == msm_bedais[be_idx].port_id)
19513 break;
19514 }
19515
19516 if (be_idx >= MSM_BACKEND_DAI_MAX) {
19517 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
19518 return -EINVAL;
19519 }
19520
19521 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
19522 if (msm_bedais_pp_params[index].port_id == port_id)
19523 break;
19524 }
19525 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
19526 pr_err("%s: Invalid backend pp params index %d\n",
19527 __func__, index);
19528 return -EINVAL;
19529 }
19530
19531 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
19532 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
19533 pr_err("%s: Invalid passthrough topology 0x%x\n",
19534 __func__, topo_id);
19535 return -EINVAL;
19536 }
19537
19538 if ((msm_bedais[be_idx].passthr_mode[fe_id] == LEGACY_PCM) ||
19539 (msm_bedais[be_idx].passthr_mode[fe_id] == LISTEN))
19540 compr_passthr_mode = false;
19541
19542 pp_config = msm_bedais_pp_params[index].pp_params_config;
19543 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
19544 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
19545 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
19546 mute_on = msm_bedais_pp_params[index].mute_on;
19547 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19548 adm_send_compressed_device_mute(port_id,
19549 copp_idx,
19550 mute_on);
19551 }
19552 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
19553 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
19554 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
19555 &pp_config);
19556 latency = msm_bedais_pp_params[index].latency;
19557 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19558 adm_send_compressed_device_latency(port_id,
19559 copp_idx,
19560 latency);
19561 }
19562 return 0;
19563}
19564
19565static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
19566 struct snd_ctl_elem_value *ucontrol)
19567{
19568 int pp_id = ucontrol->value.integer.value[0];
19569 int port_id = 0;
19570 int index, be_idx, i, topo_id, idx;
19571 bool mute;
19572 int latency;
19573 bool compr_passthr_mode = true;
19574
19575 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
19576
19577 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
19578 port_id = msm_bedais[be_idx].port_id;
19579 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
19580 break;
19581 }
19582
19583 if (be_idx >= MSM_BACKEND_DAI_MAX) {
19584 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
19585 return -EINVAL;
19586 }
19587
19588 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
19589 if (msm_bedais_pp_params[index].port_id == port_id)
19590 break;
19591 }
19592 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
19593 pr_err("%s: Invalid pp params backend index %d\n",
19594 __func__, index);
19595 return -EINVAL;
19596 }
19597
19598 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
19599 MSM_FRONTEND_DAI_MM_SIZE) {
19600 if ((msm_bedais[be_idx].passthr_mode[i] == LEGACY_PCM) ||
19601 (msm_bedais[be_idx].passthr_mode[i] == LISTEN))
19602 compr_passthr_mode = false;
19603
19604 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19605 unsigned long copp =
19606 session_copp_map[i]
19607 [SESSION_TYPE_RX][be_idx];
19608 if (!test_bit(idx, &copp))
19609 continue;
19610 topo_id = adm_get_topology_for_port_copp_idx(port_id,
19611 idx);
19612 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
19613 continue;
19614 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
19615 __func__, port_id, copp, msm_bedais[be_idx].active,
19616 msm_bedais[be_idx].passthr_mode[i]);
19617 switch (pp_id) {
19618 case ADM_PP_PARAM_MUTE_ID:
19619 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
19620 mute = ucontrol->value.integer.value[1] ? true : false;
19621 msm_bedais_pp_params[index].mute_on = mute;
19622 set_bit(ADM_PP_PARAM_MUTE_BIT,
19623 &msm_bedais_pp_params[index].pp_params_config);
19624 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19625 adm_send_compressed_device_mute(port_id,
19626 idx, mute);
19627 break;
19628 case ADM_PP_PARAM_LATENCY_ID:
19629 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
19630 msm_bedais_pp_params[index].latency =
19631 ucontrol->value.integer.value[1];
19632 set_bit(ADM_PP_PARAM_LATENCY_BIT,
19633 &msm_bedais_pp_params[index].pp_params_config);
19634 latency = msm_bedais_pp_params[index].latency =
19635 ucontrol->value.integer.value[1];
19636 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
19637 adm_send_compressed_device_latency(port_id,
19638 idx, latency);
19639 break;
19640 default:
19641 pr_info("%s, device pp param %d not supported\n",
19642 __func__, pp_id);
19643 break;
19644 }
19645 }
19646 }
19647 return 0;
19648}
19649
19650static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
19651 struct snd_ctl_elem_value *ucontrol)
19652{
19653 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
19654 return 0;
19655}
19656
19657static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
19658 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
19659 0, 3, msm_routing_get_device_pp_params_mixer,
19660 msm_routing_put_device_pp_params_mixer),
19661};
19662
19663static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
19664 struct snd_ctl_elem_value *ucontrol)
19665{
19666 ucontrol->value.integer.value[0] =
19667 core_get_license_status(ASM_MEDIA_FMT_APTX);
19668 pr_debug("%s: status %ld\n", __func__,
19669 ucontrol->value.integer.value[0]);
19670 return 0;
19671}
19672
19673static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
19674 struct snd_ctl_elem_value *ucontrol)
19675{
19676 int32_t status = 0;
19677
19678 status = core_set_license(ucontrol->value.integer.value[0],
19679 APTX_CLASSIC_DEC_LICENSE_ID);
19680 pr_debug("%s: status %d\n", __func__, status);
19681 return status;
19682}
19683
19684static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
19685 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
19686 0xFFFF, 0, msm_aptx_dec_license_control_get,
19687 msm_aptx_dec_license_control_put),
19688};
19689
Rohit kumar4ea92b12019-02-01 18:05:33 +053019690static int msm_routing_put_port_chmap_mixer(struct snd_kcontrol *kcontrol,
19691 struct snd_ctl_elem_value *ucontrol)
19692{
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019693 uint8_t channel_map[PCM_FORMAT_MAX_NUM_CHANNEL_V8];
Rohit kumar4ea92b12019-02-01 18:05:33 +053019694 uint32_t be_idx = ucontrol->value.integer.value[0];
19695 int i;
19696
Ramjee Singh6c6884d2019-06-12 12:01:52 +053019697 if (be_idx < 0 || be_idx >= MSM_BACKEND_DAI_MAX) {
19698 pr_err("%s: Invalid Backend ID %d\n",
19699 __func__, be_idx);
19700 return -EINVAL;
19701 }
19702
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019703 for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++) {
Rohit kumar4ea92b12019-02-01 18:05:33 +053019704 channel_map[i] = (char)(ucontrol->value.integer.value[i + 1]);
19705 if (channel_map[i] > PCM_MAX_CHMAP_ID) {
19706 pr_err("%s: Invalid channel map %d\n",
19707 __func__, channel_map[i]);
19708 return -EINVAL;
19709 }
19710 }
19711 adm_set_port_multi_ch_map(channel_map, msm_bedais[be_idx].port_id);
19712
19713 return 0;
19714}
19715
19716static const struct snd_kcontrol_new port_multi_channel_map_mixer_controls[] = {
19717 SOC_SINGLE_MULTI_EXT("Backend Device Channel Map", SND_SOC_NOPM, 0,
19718 MSM_BACKEND_DAI_MAX, 0,
Dieter Lueckingdfe01252018-09-28 15:03:01 +020019719 PCM_FORMAT_MAX_NUM_CHANNEL_V8 + 1, NULL,
Rohit kumar4ea92b12019-02-01 18:05:33 +053019720 msm_routing_put_port_chmap_mixer),
19721};
19722
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019723static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
19724 struct snd_ctl_elem_info *uinfo)
19725{
19726 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
19727 uinfo->count = sizeof(be_dai_name_table);
19728 return 0;
19729}
19730
19731static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
19732 unsigned int __user *bytes,
19733 unsigned int size)
19734{
19735 int i;
19736 int ret;
19737
19738 if (size < sizeof(be_dai_name_table)) {
19739 pr_err("%s: invalid size %d requested, returning\n",
19740 __func__, size);
19741 ret = -EINVAL;
19742 goto done;
19743 }
19744
19745 /*
19746 * Fill be_dai_name_table from msm_bedais table to reduce code changes
19747 * needed when adding new backends
19748 */
19749 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
19750 be_dai_name_table[i].be_id = i;
19751 strlcpy(be_dai_name_table[i].be_name,
19752 msm_bedais[i].name,
19753 LPASS_BE_NAME_MAX_LENGTH);
19754 }
19755
19756 ret = copy_to_user(bytes, &be_dai_name_table,
19757 sizeof(be_dai_name_table));
19758 if (ret) {
19759 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
19760 ret = -EFAULT;
19761 }
19762
19763done:
19764 return ret;
19765}
19766
19767static const struct snd_kcontrol_new
19768 msm_routing_be_dai_name_table_mixer_controls[] = {
19769 {
19770 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
19771 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
19772 .info = msm_routing_be_dai_name_table_info,
19773 .name = "Backend DAI Name Table",
19774 .tlv.c = snd_soc_bytes_tlv_callback,
19775 .private_value = (unsigned long) &(struct soc_bytes_ext) {
19776 .max = sizeof(be_dai_name_table),
19777 .get = msm_routing_be_dai_name_table_tlv_get,
19778 }
19779 },
19780};
19781
19782static int msm_routing_stereo_channel_reverse_control_get(
19783 struct snd_kcontrol *kcontrol,
19784 struct snd_ctl_elem_value *ucontrol)
19785{
19786 ucontrol->value.integer.value[0] = swap_ch;
19787 pr_debug("%s: Swap channel value: %ld\n", __func__,
19788 ucontrol->value.integer.value[0]);
19789 return 0;
19790}
19791
19792static int msm_routing_stereo_channel_reverse_control_put(
19793 struct snd_kcontrol *kcontrol,
19794 struct snd_ctl_elem_value *ucontrol)
19795{
19796 int i, idx, be_index, port_id;
19797 int ret = 0;
19798 unsigned long copp;
19799
19800 pr_debug("%s Swap channel value:%ld\n", __func__,
19801 ucontrol->value.integer.value[0]);
19802
19803 swap_ch = ucontrol->value.integer.value[0];
19804
19805 mutex_lock(&routing_lock);
19806 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
19807 port_id = msm_bedais[be_index].port_id;
19808 if (!msm_bedais[be_index].active)
19809 continue;
19810
19811 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
19812 MSM_FRONTEND_DAI_MM_SIZE) {
19813 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
19814 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
19815 if (!test_bit(idx, &copp))
19816 continue;
19817
19818 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
19819 __func__, port_id, idx);
19820 ret = adm_swap_speaker_channels(
19821 port_id, idx,
19822 msm_bedais[be_index].sample_rate,
19823 swap_ch);
19824 if (ret) {
19825 pr_err("%s:Swap_channel failed, err=%d\n",
19826 __func__, ret);
19827 goto done;
19828 }
19829 }
19830 }
19831 }
19832done:
19833 mutex_unlock(&routing_lock);
19834 return ret;
19835}
19836
19837static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
19838 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
19839 1, 0, msm_routing_stereo_channel_reverse_control_get,
19840 msm_routing_stereo_channel_reverse_control_put),
19841};
19842
19843static const struct snd_pcm_ops msm_routing_pcm_ops = {
19844 .hw_params = msm_pcm_routing_hw_params,
19845 .close = msm_pcm_routing_close,
19846 .prepare = msm_pcm_routing_prepare,
19847};
19848
19849/* Not used but frame seems to require it */
19850static int msm_routing_probe(struct snd_soc_platform *platform)
19851{
19852 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
19853 ARRAY_SIZE(msm_qdsp6_widgets));
19854 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
19855 ARRAY_SIZE(intercon));
19856
19857 snd_soc_dapm_new_widgets(platform->component.dapm.card);
19858
19859 snd_soc_add_platform_controls(platform, lsm_controls,
19860 ARRAY_SIZE(lsm_controls));
19861
19862 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
19863 ARRAY_SIZE(aanc_slim_0_rx_mux));
19864
19865 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
19866 ARRAY_SIZE(msm_voc_session_controls));
19867
19868 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
19869 ARRAY_SIZE(app_type_cfg_controls));
19870
19871 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
19872 ARRAY_SIZE(lsm_app_type_cfg_controls));
19873
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070019874 snd_soc_add_platform_controls(platform, module_cfg_controls,
19875 ARRAY_SIZE(module_cfg_controls));
19876
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019877 snd_soc_add_platform_controls(platform,
19878 stereo_to_custom_stereo_controls,
19879 ARRAY_SIZE(stereo_to_custom_stereo_controls));
19880
19881 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
19882 ARRAY_SIZE(ec_ref_param_controls));
19883
19884 snd_soc_add_platform_controls(platform, channel_mixer_controls,
19885 ARRAY_SIZE(channel_mixer_controls));
19886
19887 msm_qti_pp_add_controls(platform);
19888
19889 msm_dts_srs_tm_add_controls(platform);
19890
19891 msm_dolby_dap_add_controls(platform);
19892
19893 snd_soc_add_platform_controls(platform,
19894 use_ds1_or_ds2_controls,
19895 ARRAY_SIZE(use_ds1_or_ds2_controls));
19896
19897 snd_soc_add_platform_controls(platform,
19898 device_pp_params_mixer_controls,
19899 ARRAY_SIZE(device_pp_params_mixer_controls));
19900
19901 snd_soc_add_platform_controls(platform,
19902 msm_routing_be_dai_name_table_mixer_controls,
19903 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
19904
19905 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
19906 ARRAY_SIZE(msm_source_tracking_controls));
19907 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
19908 ARRAY_SIZE(adm_channel_config_controls));
19909
19910 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
19911 ARRAY_SIZE(aptx_dec_license_controls));
19912 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
19913 ARRAY_SIZE(stereo_channel_reverse_control));
Rohit kumar4ea92b12019-02-01 18:05:33 +053019914 snd_soc_add_platform_controls(platform,
19915 port_multi_channel_map_mixer_controls,
19916 ARRAY_SIZE(port_multi_channel_map_mixer_controls));
19917
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019918 return 0;
19919}
19920
19921int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
19922{
19923 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
19924}
19925
19926void msm_routing_pcm_free(struct snd_pcm *pcm)
19927{
19928 msm_pcm_routing_hwdep_free(pcm);
19929}
19930
19931static struct snd_soc_platform_driver msm_soc_routing_platform = {
19932 .ops = &msm_routing_pcm_ops,
19933 .probe = msm_routing_probe,
19934 .pcm_new = msm_routing_pcm_new,
19935 .pcm_free = msm_routing_pcm_free,
19936};
19937
19938static int msm_routing_pcm_probe(struct platform_device *pdev)
19939{
19940
19941 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
19942 return snd_soc_register_platform(&pdev->dev,
19943 &msm_soc_routing_platform);
19944}
19945
19946static int msm_routing_pcm_remove(struct platform_device *pdev)
19947{
19948 snd_soc_unregister_platform(&pdev->dev);
19949 return 0;
19950}
19951
19952static const struct of_device_id msm_pcm_routing_dt_match[] = {
19953 {.compatible = "qcom,msm-pcm-routing"},
19954 {}
19955};
19956MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
19957
19958static struct platform_driver msm_routing_pcm_driver = {
19959 .driver = {
19960 .name = "msm-pcm-routing",
19961 .owner = THIS_MODULE,
19962 .of_match_table = msm_pcm_routing_dt_match,
19963 },
19964 .probe = msm_routing_pcm_probe,
19965 .remove = msm_routing_pcm_remove,
19966};
19967
19968int msm_routing_check_backend_enabled(int fedai_id)
19969{
19970 int i;
19971
19972 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
19973 /* bad ID assigned in machine driver */
19974 pr_err("%s: bad MM ID\n", __func__);
19975 return 0;
19976 }
19977 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
19978 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
19979 return msm_bedais[i].active;
19980 }
19981 return 0;
19982}
19983
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053019984static int get_cal_type_index(int32_t cal_type)
19985{
19986 int ret = -EINVAL;
19987
19988 switch (cal_type) {
19989 case ADM_TOPOLOGY_CAL_TYPE:
19990 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
19991 break;
19992 case ADM_LSM_TOPOLOGY_CAL_TYPE:
19993 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
19994 break;
19995 default:
19996 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
19997 }
19998 return ret;
19999}
20000
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020001static int msm_routing_set_cal(int32_t cal_type,
20002 size_t data_size, void *data)
20003{
20004 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020005 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020006 pr_debug("%s\n", __func__);
20007
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020008 cal_index = get_cal_type_index(cal_type);
20009 if (cal_index < 0) {
20010 pr_err("%s: Could not get cal index %d\n",
20011 __func__, cal_index);
20012 ret = -EINVAL;
20013 goto done;
20014 }
20015
20016 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020017 if (ret < 0) {
20018 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
20019 __func__, ret, cal_type);
20020 ret = -EINVAL;
20021 goto done;
20022 }
20023done:
20024 return ret;
20025}
20026
20027static void msm_routing_delete_cal_data(void)
20028{
20029 pr_debug("%s\n", __func__);
20030
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020031 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020032}
20033
20034static int msm_routing_init_cal_data(void)
20035{
20036 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020037 struct cal_type_info cal_type_info[] = {
20038 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020039 {NULL, NULL, NULL,
20040 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020041 {NULL, NULL, cal_utils_match_buf_num} },
20042
20043 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
20044 {NULL, NULL, NULL,
20045 msm_routing_set_cal, NULL, NULL} },
20046 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020047 };
20048 pr_debug("%s\n", __func__);
20049
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053020050 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
20051 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020052 if (ret < 0) {
20053 pr_err("%s: could not create cal type!\n",
20054 __func__);
20055 ret = -EINVAL;
20056 goto err;
20057 }
20058
20059 return ret;
20060err:
20061 msm_routing_delete_cal_data();
20062 return ret;
20063}
20064
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053020065int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020066{
20067 mutex_init(&routing_lock);
20068 if (msm_routing_init_cal_data())
20069 pr_err("%s: could not init cal data!\n", __func__);
20070
20071 afe_set_routing_callback(
20072 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
20073
20074 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20075 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
20076
20077 return platform_driver_register(&msm_routing_pcm_driver);
20078}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020079
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053020080void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020081{
20082 msm_routing_delete_cal_data();
20083 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
20084 mutex_destroy(&routing_lock);
20085 platform_driver_unregister(&msm_routing_pcm_driver);
20086}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020087
20088MODULE_DESCRIPTION("MSM routing platform driver");
20089MODULE_LICENSE("GPL v2");